From 04c1f7b18d294686b66e2fdd765add5184b4e08c Mon Sep 17 00:00:00 2001 From: Iain-Stanger <132473051+Iain-Stanger@users.noreply.github.com> Date: Thu, 29 Feb 2024 11:49:53 +0000 Subject: [PATCH] Release: development into main (#545) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * draft: docs: Caching documentation (#460) * docs: initial documentation templates * docs: add other headers * docs: overview of readpage * docs: add db schema * docs: more caching process documentation * terraform-docs: automated action * docs: Update CMS schema diagram * docs: Add dbdiagram code for schema * docs: Finish Contentful caching process doc * docs: initial documentation templates * docs: add other headers * docs: overview of readpage * docs: add db schema * docs: more caching process documentation * docs: Update CMS schema diagram * docs: Add dbdiagram code for schema * docs: Finish Contentful caching process doc * docs: wip templates for adrs * docs: draft highlevel mapping info --------- Co-authored-by: github-actions[bot] * fix: handle textBodyDB entity being empty - possible fix * Linted Code in Dfe.PlanTech.Domain/ * ignore mapping of rich text id * fix: Check answers page title (#487) * fix: check answers page title * fix: remove line * Linted Code in Dfe.PlanTech.Web/ --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * feat: Add caching docs (#486) * docs: initial documentation templates * docs: add other headers * docs: overview of readpage * docs: add db schema * docs: more caching process documentation * terraform-docs: automated action * docs: Update CMS schema diagram * docs: Add dbdiagram code for schema * docs: Finish Contentful caching process doc * docs: initial documentation templates * docs: add other headers * docs: overview of readpage * docs: add db schema * docs: more caching process documentation * docs: Update CMS schema diagram * docs: Add dbdiagram code for schema * docs: Finish Contentful caching process doc * docs: wip templates for adrs * docs: draft highlevel mapping info * docs: pad out adrs * docs: add caching adr * docs: Expand contentful caching process --------- Co-authored-by: github-actions[bot] * feat: Support preview mode in Content db (#489) * wip * feat: process options * feat: support preview in cmsdbcontext * tests: tests for save + autosave * feat: add contentfuloptions to web proj * fix: add default usepreview * fix: correctly get ContentfulOptions in dbcontext * chore: remove unneeded param, add docs * chore: refactor ignore message condition * fix: Azure Function Tests (#490) * fix: Add parameterless constructor again to fix tests * chore: code cleanup recommendations * fix: Remove this.getservice as causing errors * fix: service config issue * refactor: use guard statement for cleaner code * refactor: create only adds contentcomponent * refactor: revert changes and skip create event * refactor: only save or auto_save when a new entity has all its required fields * test: update tests * tests: Initial programatic E2E tests work (#493) * feat: Hotfixes (#492) * draft: docs: Caching documentation (#460) * docs: initial documentation templates * docs: add other headers * docs: overview of readpage * docs: add db schema * docs: more caching process documentation * terraform-docs: automated action * docs: Update CMS schema diagram * docs: Add dbdiagram code for schema * docs: Finish Contentful caching process doc * docs: initial documentation templates * docs: add other headers * docs: overview of readpage * docs: add db schema * docs: more caching process documentation * docs: Update CMS schema diagram * docs: Add dbdiagram code for schema * docs: Finish Contentful caching process doc * docs: wip templates for adrs * docs: draft highlevel mapping info --------- Co-authored-by: github-actions[bot] * fix: handle textBodyDB entity being empty - possible fix * Linted Code in Dfe.PlanTech.Domain/ * ignore mapping of rich text id * fix: Check answers page title (#487) * fix: check answers page title * fix: remove line * Linted Code in Dfe.PlanTech.Web/ --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * feat: Add caching docs (#486) * docs: initial documentation templates * docs: add other headers * docs: overview of readpage * docs: add db schema * docs: more caching process documentation * terraform-docs: automated action * docs: Update CMS schema diagram * docs: Add dbdiagram code for schema * docs: Finish Contentful caching process doc * docs: initial documentation templates * docs: add other headers * docs: overview of readpage * docs: add db schema * docs: more caching process documentation * docs: Update CMS schema diagram * docs: Add dbdiagram code for schema * docs: Finish Contentful caching process doc * docs: wip templates for adrs * docs: draft highlevel mapping info * docs: pad out adrs * docs: add caching adr * docs: Expand contentful caching process --------- Co-authored-by: github-actions[bot] * feat: Support preview mode in Content db (#489) * wip * feat: process options * feat: support preview in cmsdbcontext * tests: tests for save + autosave * feat: add contentfuloptions to web proj * fix: add default usepreview * fix: correctly get ContentfulOptions in dbcontext * chore: remove unneeded param, add docs * chore: refactor ignore message condition * fix: Azure Function Tests (#490) * fix: Add parameterless constructor again to fix tests * chore: code cleanup recommendations * fix: Remove this.getservice as causing errors * fix: service config issue * refactor: use guard statement for cleaner code * refactor: create only adds contentcomponent * refactor: revert changes and skip create event * refactor: only save or auto_save when a new entity has all its required fields * test: update tests --------- Co-authored-by: github-actions[bot] Co-authored-by: uahussain12 <“umar.hussain@and.digital”> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: uahussain12 Co-authored-by: Zac King Co-authored-by: Iain STANGER Co-authored-by: Zac <119302767+Zac-AND-Digital@users.noreply.github.com> * wip: validating pages dynamically * wip: validate textbodies * wip * wip: move validations to separate files * feat: validate paragraphs * feat: validate table * feat: use class, add comments * chore: rearrange files * chore: add docs * chore: delete moved files * fix: add missing comma * fix: file names, null data * fix: add relative path --------- Co-authored-by: github-actions[bot] Co-authored-by: uahussain12 <“umar.hussain@and.digital”> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: uahussain12 Co-authored-by: Zac King Co-authored-by: Iain STANGER Co-authored-by: Zac <119302767+Zac-AND-Digital@users.noreply.github.com> * tests: Add category and sections to programatic tests (#494) * feat: Hotfixes (#492) * draft: docs: Caching documentation (#460) * docs: initial documentation templates * docs: add other headers * docs: overview of readpage * docs: add db schema * docs: more caching process documentation * terraform-docs: automated action * docs: Update CMS schema diagram * docs: Add dbdiagram code for schema * docs: Finish Contentful caching process doc * docs: initial documentation templates * docs: add other headers * docs: overview of readpage * docs: add db schema * docs: more caching process documentation * docs: Update CMS schema diagram * docs: Add dbdiagram code for schema * docs: Finish Contentful caching process doc * docs: wip templates for adrs * docs: draft highlevel mapping info --------- Co-authored-by: github-actions[bot] * fix: handle textBodyDB entity being empty - possible fix * Linted Code in Dfe.PlanTech.Domain/ * ignore mapping of rich text id * fix: Check answers page title (#487) * fix: check answers page title * fix: remove line * Linted Code in Dfe.PlanTech.Web/ --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * feat: Add caching docs (#486) * docs: initial documentation templates * docs: add other headers * docs: overview of readpage * docs: add db schema * docs: more caching process documentation * terraform-docs: automated action * docs: Update CMS schema diagram * docs: Add dbdiagram code for schema * docs: Finish Contentful caching process doc * docs: initial documentation templates * docs: add other headers * docs: overview of readpage * docs: add db schema * docs: more caching process documentation * docs: Update CMS schema diagram * docs: Add dbdiagram code for schema * docs: Finish Contentful caching process doc * docs: wip templates for adrs * docs: draft highlevel mapping info * docs: pad out adrs * docs: add caching adr * docs: Expand contentful caching process --------- Co-authored-by: github-actions[bot] * feat: Support preview mode in Content db (#489) * wip * feat: process options * feat: support preview in cmsdbcontext * tests: tests for save + autosave * feat: add contentfuloptions to web proj * fix: add default usepreview * fix: correctly get ContentfulOptions in dbcontext * chore: remove unneeded param, add docs * chore: refactor ignore message condition * fix: Azure Function Tests (#490) * fix: Add parameterless constructor again to fix tests * chore: code cleanup recommendations * fix: Remove this.getservice as causing errors * fix: service config issue * refactor: use guard statement for cleaner code * refactor: create only adds contentcomponent * refactor: revert changes and skip create event * refactor: only save or auto_save when a new entity has all its required fields * test: update tests --------- Co-authored-by: github-actions[bot] Co-authored-by: uahussain12 <“umar.hussain@and.digital”> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: uahussain12 Co-authored-by: Zac King Co-authored-by: Iain STANGER Co-authored-by: Zac <119302767+Zac-AND-Digital@users.noreply.github.com> * wip: validating pages dynamically * wip: validate textbodies * wip * wip: move validations to separate files * feat: validate paragraphs * feat: validate table * feat: use class, add comments * chore: rearrange files * chore: add docs * chore: delete moved files * fix: missing comma * fix: remove file * feaT: Process sections and categories on /self-assessment page * fix: skip test due to missing data --------- Co-authored-by: github-actions[bot] Co-authored-by: uahussain12 <“umar.hussain@and.digital”> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: uahussain12 Co-authored-by: Zac King Co-authored-by: Iain STANGER Co-authored-by: Zac <119302767+Zac-AND-Digital@users.noreply.github.com> * W.I.P * tests: Refactor existing work on dynamic E2E tests (#496) * feat: Hotfixes (#492) * draft: docs: Caching documentation (#460) * docs: initial documentation templates * docs: add other headers * docs: overview of readpage * docs: add db schema * docs: more caching process documentation * terraform-docs: automated action * docs: Update CMS schema diagram * docs: Add dbdiagram code for schema * docs: Finish Contentful caching process doc * docs: initial documentation templates * docs: add other headers * docs: overview of readpage * docs: add db schema * docs: more caching process documentation * docs: Update CMS schema diagram * docs: Add dbdiagram code for schema * docs: Finish Contentful caching process doc * docs: wip templates for adrs * docs: draft highlevel mapping info --------- Co-authored-by: github-actions[bot] * fix: handle textBodyDB entity being empty - possible fix * Linted Code in Dfe.PlanTech.Domain/ * ignore mapping of rich text id * fix: Check answers page title (#487) * fix: check answers page title * fix: remove line * Linted Code in Dfe.PlanTech.Web/ --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * feat: Add caching docs (#486) * docs: initial documentation templates * docs: add other headers * docs: overview of readpage * docs: add db schema * docs: more caching process documentation * terraform-docs: automated action * docs: Update CMS schema diagram * docs: Add dbdiagram code for schema * docs: Finish Contentful caching process doc * docs: initial documentation templates * docs: add other headers * docs: overview of readpage * docs: add db schema * docs: more caching process documentation * docs: Update CMS schema diagram * docs: Add dbdiagram code for schema * docs: Finish Contentful caching process doc * docs: wip templates for adrs * docs: draft highlevel mapping info * docs: pad out adrs * docs: add caching adr * docs: Expand contentful caching process --------- Co-authored-by: github-actions[bot] * feat: Support preview mode in Content db (#489) * wip * feat: process options * feat: support preview in cmsdbcontext * tests: tests for save + autosave * feat: add contentfuloptions to web proj * fix: add default usepreview * fix: correctly get ContentfulOptions in dbcontext * chore: remove unneeded param, add docs * chore: refactor ignore message condition * fix: Azure Function Tests (#490) * fix: Add parameterless constructor again to fix tests * chore: code cleanup recommendations * fix: Remove this.getservice as causing errors * fix: service config issue * refactor: use guard statement for cleaner code * refactor: create only adds contentcomponent * refactor: revert changes and skip create event * refactor: only save or auto_save when a new entity has all its required fields * test: update tests --------- Co-authored-by: github-actions[bot] Co-authored-by: uahussain12 <“umar.hussain@and.digital”> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: uahussain12 Co-authored-by: Zac King Co-authored-by: Iain STANGER Co-authored-by: Zac <119302767+Zac-AND-Digital@users.noreply.github.com> * wip: validating pages dynamically * wip: validate textbodies * wip * wip: move validations to separate files * feat: validate paragraphs * feat: validate table * feat: use class, add comments * chore: rearrange files * chore: add docs * chore: delete moved files * fix: missing comma * refactor: cleanup duplicated code. * merge development * chore: delete old dupe files --------- Co-authored-by: github-actions[bot] Co-authored-by: uahussain12 <“umar.hussain@and.digital”> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: uahussain12 Co-authored-by: Zac King Co-authored-by: Iain STANGER Co-authored-by: Zac <119302767+Zac-AND-Digital@users.noreply.github.com> * W.I.P * fix: checkout repo * refactor: remove superseded workflow * refactor: add relevant triggers to paths and run some in parallel * refactor: concurrency groups, pass artifact name as variable * refactor: concurrency group naming * chore: remove debug code * tests: Navigate through every question in a sub-topic using Contentful data (#499) * feat: add warning validator * chore: add missing fields * feat: Test every question page for every sub-topic - Test question - Test answers - Test check answers matches - Uses path(s) that navigates through each question in a sub-topic * chore: add skip back * fix: correct name variable * tests: E2E tests for every possible recommendation page (#500) * feat: add warning validator * chore: add missing fields * feat: Test every question page for every sub-topic - Test question - Test answers - Test check answers matches - Uses path(s) that navigates through each question in a sub-topic * chore: add skip back * fix: correct name variable * feat: validate every recommendation for every maturity * feat: validate recommendation pages * chore: revert testing things * refactor: delete unused workflow * chore: update various versions in workflows * chore: update various versions in custom actions * tests: Last E2E component tests (#501) * fix: Test interstitial page content + replace all whitespaces * chore: remove empty line * tests: validate warning component + button with entry reference * chore: remove log command * feat: inset text validator + slight refactor * feat: Test nav link * docs: update components done * terraform-docs: automated action * refactor: see what happens if v2 is changed to v3 for terraform setup * refactor: see what happens if v2 is changed to v3 for terraform setup * chore: remove todo * tests: Split up unit tests by page/section (#502) * tests: Split up unit tests by page/section * fix: unauthorised pages * fix: only test unauthorised pages again * chore: remove unused var * chore: remove unused before * chore: remove log command * chore: remove log command * Qa view spike (#504) * test graphiz dependency install in actions * test graphiz dependency install in actions * image output upload * image upload * test * correct location for generated images * output artifact id * output artifact id * test building link to artifact * retrieve data from sql server * retrieve data from sql server * list files * Add visualisation script to loop through the data files to create viz for each section * call the teams webhook * typo * typo * test using AD connection string * retest * Use access token for DB connection * use dev environment just for testing * add required variables * test building sql connection rather than from secret * Add new question/answer visaulisation workflow --------- Co-authored-by: uahussain12 <“umar.hussain@and.digital”> * wip cleanup (#498) * wip cleanup * cleanup * cleanup * test for assertion * chore: upgrade missed version * refactor: merge ShouldDropMessage and ShouldIgnoreMessage * Format visualisations (#506) * Add formatting to visualisations, removes cron schedule from workflow and add as job within matrix deploy * add -y flag for any prompts --------- Co-authored-by: uahussain12 <“umar.hussain@and.digital”> * refactor: Log which required properties are null in such an event * chore: remove block comment * fix: RichText retrieval bug (#507) - Fixes types in `@RichTextIds` and `idColumn` - Optimised the querying of the fetching of the `ContentComponentIds` and the `RichTextIds` * refactor: Check validity of component always * refactor: remove unused parameter * refactor: remove unused parameter * refactor: update dotnet-coverage to latest * refactor: rollback dotnet-coverage to last known good version * fix: rollback dotnet-coverage for sonarcloud * test: update tests * Feat/cleanup (#512) * wip cleanup * cleanup * cleanup * test for assertion * Architecture Diagram Update * update * added test to update coverage on GetEntitiesException * refactor: change valid component logic * chore: move node unit tests package files to actual folder (#515) * chore: move node unit tests package files to actual folder - These were originally in root dir incase we had tests spread out across multiple projects. Which we don't so this just cleans it up. * fix: test path Swear I already changed this but apparently not. * chore: Update all nuget packages. (#510) * chore: Update all nuget packages. Remove moq * fix: replace automapper package * feat: Convert RichTextContents function into a view (#509) * feat: refactor function RichTextContents by page into view * fix: correct type * Linted Code in Dfe.PlanTech.Domain/ * chore: linting + remove unnecessary query * chore: Update all nuget packages. Remove moq * fix: replace automapper package * fix: remove broken sql * chore: small refactor + consistency changes - Removes unncessary toplevel `SELECT *` statement - Made every table name + column name in [] to ensure consistency - Added actual columns to the `SELECT` query for the function --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Feat/cleanup (#517) * wip cleanup * cleanup * cleanup * test for assertion * Architecture Diagram Update * update * added test to update coverage on GetEntitiesException * updated tests and protected constructor for serializable class * Linted Code in Dfe.PlanTech.Infrastructure.Contentful/ --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * refactor: W.I.P add semantic versioning * refactor: global install semantic-release * refactor: install dependencies * refactor: install dependencies with versions * feat: use semantic versioning * refactor: run it on push test * refactor: tag change * refactor: create contentful entity classes * Feat/cleanup (#518) * wip cleanup * cleanup * cleanup * test for assertion * Architecture Diagram Update * update * added test to update coverage on GetEntitiesException * updated tests and protected constructor for serializable class * more cleanup for v1.05 * refactor: change string to Title component * fix(sql): :bug: Fixes a bug where Warning components weren't display text (#521) * fix(sql): Fixes a bug where Warning components weren't display text * fix: missing marks and data * refactor: change Maturity enum to string * refactor: rename variables to match cms * refactor: add Title field to RecommendationChunk * refactor: change title component to header component * feat: Update Gov UK Packages (#523) * feat: Update Gov UK Packages - Updates govuk-frontend - Updates DFE alpha - Adds relevant JS to _Layout.cshtml * fix: unit tests to match govuk changes * fix: use commands * fix: button styling, compile scss * feat: add step-by-step navigation from govuk prototype (#525) **:sparkles: Features**: - Add the `step by step navigation` JS and CSS from the `@govuk-prototype-kit/step-by-step` package **:adhesive_bandage: Fixes**: - Updates the `Warning component` tag helper, to use the new class to hide the warning text. * refactor: update interfaces * test: add temp dummy tests * refactor: use generic type in interface * fix: :green_heart: Semver release (#527) * fix: Remove exec commands * :zap:: Update Category + Recommendation View Components (#529) * :lipstick:: Update Tag colour to match changes - In [version 5](https://github.com/alphagov/govuk-design-system-backlog/issues/62#issuecomment-1888918535) of the GDS front-end packages, they have changed the tag colours. As a result, our "dark blue" tag no longer existed, so all of our tags were using the default colours. - Changed tag colour match changes. :zap: Changed GetSectionSubmissionStatuses to return List - Improves performance by not having to call `.ToList` on an object that is already a List * :zap:: Make recommendations + category views async * fix: ignore capitalisation * fix: Web unit tests * fix: Application tests * refactor: debug test comment removal * refactor: debug test comment removal * refactor: debug test comment removal * refactor: change test tag name * refactor: add debug paths * refactor: remove debug code * refactor: change Title to string, link SubtopicRecommendation to subtopic * Feat/accordion view step by step (#528) * feat: Update Gov UK Packages - Updates govuk-frontend - Updates DFE alpha - Adds relevant JS to _Layout.cshtml * WIP - accordion view component * fix: unit tests to match govuk changes * fix: use commands * fix: button styling, compile scss * feat: add step-by-step navigation from govuk prototype * feat: Accordion view component added. * feat: Accordion view component added. * WIP * WIP - step by step accordion component * feat: basic step by step accordion component view * resolve merge conflict * Updated JS + CSS files * feat: Step by step accordion view component added. * Linted Code in Dfe.PlanTech.Domain/ --------- Co-authored-by: Jim Washbrook Co-authored-by: uahussain12 <“umar.hussain@and.digital”> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * :hammer: Workflow + SQL script to clear user data from DB (#531) * fix: add file extension * feat: Initial script to clear DB * fix: correct ordering, add signin table, remove * * chore: move sql script Otherwise it would run on every environment when deployed and clear the data... Whoops. * cicd: Add workflow * feat: disallow production * TESTING: check inputs works. * UNDO TEST CHANGES * fix(?): remove init from BeforeContent - This simply added the class `js-enabled` to the Body element. This seemed to already be covered by the `initAll()` functionality from the govuk-frontend.js file * fix: remove step by step navigation js from layout (#533) * chore: Add GovUK body class script in (#534) Removed this yesterday in an erroneous attempt to fix the E2E tests. It's necessary for the GOV UK front-end initialisation script though so I've added back in. * Feat/CodeCleanup (#524) * wip cleanup * cleanup * cleanup * test for assertion * Architecture Diagram Update * update * added test to update coverage on GetEntitiesException * updated tests and protected constructor for serializable class * more cleanup for v1.05 * more cleanup for SonarCloud * fix * Linted Code in Dfe.PlanTech.Application/ * exception handling * linting and formatting --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * fix: Fix SQL script to clear DB (#536) - For some reason the 'Go' commands weren't working from the workflow (although worked directly on DB). Removed. - Tweaked CI/CD pipeline a bit to ensure safety * docs(workflows): :memo: Add workflow changes to docs (#537) * :memo:(workflows) Add new workflows to documentation - Add information on the `create-tag-release` workflow - Add information on the `clear-user-data-from-db` workflow - Moves the information about the `terraform-pr-check` workflow lower down in the document so that it is in alphabetical order * :memo:(workflows) Add TOC GitHub should automatically have one available but you have to toggle it and this will be immediately visible. * chore: Packages Update (#540) * wip cleanup * cleanup * cleanup * test for assertion * Architecture Diagram Update * update * added test to update coverage on GetEntitiesException * updated tests and protected constructor for serializable class * more cleanup for v1.05 * more cleanup for SonarCloud * fix * Linted Code in Dfe.PlanTech.Application/ * exception handling * linting and formatting * Package updates --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * fix: remove text match check (#542) * fix(197631): :bug: Fix content ordering on page (#541) * feat: add error catching * feat: add join table properties * chore: remove debug lines * chore: formatting * feat: add order pagecontent * feat: order contents * refactor: cleanup ordering * tests: Check for order * tests: Update unit tests * tests: Update unit tests * chore: rename to be more descriptive * Trigger tf doc update (#544) * Trigger tf doc update * terraform-docs: automated action --------- Co-authored-by: uahussain12 <“umar.hussain@and.digital”> Co-authored-by: github-actions[bot] * fix: :lipstick: css stylings (#546) Fixes 197437 197630 Doesn't fix 197620 intentionally as incorrect. * fix: Remove outdated copying of a specific file (#547) * fix: :lipstick: css stylings Fixes 197437 197630 Doesn't fix 197620 intentionally as incorrect. * fix: Remove outdated copying of a specific file * feat: Add order column to PageContents (#549) * cicd: don't lint if dir not had changes * feat: add order columnt ot able * fix: remove incorrect changes --------- Co-authored-by: jimwashbrook <131891854+jimwashbrook@users.noreply.github.com> Co-authored-by: github-actions[bot] Co-authored-by: uahussain12 <“umar.hussain@and.digital”> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: uahussain12 Co-authored-by: Zac King Co-authored-by: Zac <119302767+Zac-AND-Digital@users.noreply.github.com> Co-authored-by: Jim Washbrook --- .github/actions/build-dotnet-app/action.yml | 2 +- .../actions/post-terraform-results/action.yml | 2 +- .github/actions/run-e2e-tests/action.yml | 4 +- .github/scripts/clear-user-data-from-db.sql | 11 + .github/scripts/qa-data.py | 65 + .github/scripts/qa-visualisations.py | 67 + .../build-and-deploy-azure-function.yml | 58 - .github/workflows/build-and-deploy.yml | 167 - .github/workflows/build-azure-function.yml | 45 + .github/workflows/build-image.yml | 66 +- .github/workflows/build-web-assets.yml | 11 +- .github/workflows/clear-user-data-from-db.yml | 80 + .github/workflows/code-pr-check.yml | 76 +- .github/workflows/create-tag-release.yml | 42 + .github/workflows/deploy-azure-function.yml | 47 + .github/workflows/deploy-image.yml | 309 +- .github/workflows/e2e-tests.yml | 6 +- .../matrix-deploy-azure-function.yml | 76 + .github/workflows/matrix-deploy.yml | 41 +- .github/workflows/qa-viz.yml | 104 + .github/workflows/terraform-deploy.yml | 24 +- .github/workflows/terraform-dns.yml | 16 +- .github/workflows/terraform-plan.yml | 12 +- .github/workflows/terraform-pr-check.yml | 54 +- .github/workflows/validate-scripts.yml | 153 +- .releaserc.json | 16 + contentful/export-processor/.gitignore | 2 + contentful/export-processor/README.md | 5 + .../content-types/answer.js} | 0 .../content-types/content-type.js | 36 + .../content-types/content-types.js | 11 + .../content-types/question.js} | 4 +- .../content-types/recommendation.js} | 5 + .../content-types/section.js} | 10 +- .../data-mapper.js} | 140 +- contentful/export-processor/index.js | 6 + .../user-journey}/README.md | 0 .../user-journey/question-answer.js} | 0 .../user-journey/test-suite-generator.js} | 7 +- .../user-journey/user-journey.js} | 0 .../user-journey-info-scripts/.gitignore | 2 - .../user-journey-info-scripts/functions.mjs | 0 docs/GitHub-Workflows.md | 74 +- docs/diagrams/architecture.drawio | 300 +- docs/diagrams/published/architecture.png | Bin 183562 -> 224288 bytes .../Content/Queries/GetPageFromDbQuery.cs | 39 +- .../Content/Queries/GetPageQuery.cs | 3 +- .../Content/Queries/GetRichTextsQuery.cs | 24 +- .../Dfe.PlanTech.Application.csproj | 4 +- .../Helpers/QueryServiceSetup.cs | 2 +- .../Persistence/Interfaces/ICmsDbContext.cs | 3 +- .../Queries/GetSubmissionStatusesQuery.cs | 4 +- .../Dfe_PlanTech_AzureFunctions.csproj | 14 +- .../Functions/QueueReceiver.cs | 58 +- .../Mappings/JsonToDbMapper.cs | 2 +- .../Mappings/JsonToEntityMappers.cs | 4 +- .../Mappings/PageMapper.cs | 24 +- .../Mappings/TextBodyMapper.cs | 6 +- .../Dfe.PlanTech.DatabaseUpgrader.csproj | 4 +- ...tAllRichTextContentForPageSlugFunction.sql | 39 + ..._CreateRichTextContentWithPageSlugView.sql | 77 + .../20240219_1407_FixWarningComponent.sql | 71 + ..._AddOrderColumnToContentComponentTable.sql | 2 + .../Content/Interfaces/IAccordion.cs | 8 + .../Content/Models/Accordion.cs | 11 + .../Models/ContentComponentDbEntity.cs | 11 + .../Content/Models/Page.cs | 4 +- .../Content/Models/PageContentDbEntity.cs | 5 + .../Content/Models/PageDbEntity.cs | 27 +- .../Content/Models/RichTextContentDbEntity.cs | 6 +- .../Models/RichTextContentWithSlugDbEntity.cs | 20 + .../Models/WarningComponentDbEntity.cs | 5 + .../Interfaces/IGetSubmissionStatusesQuery.cs | 2 +- .../Interfaces/IRecommendationChunk.cs | 20 + .../Interfaces/IRecommendationIntro.cs | 17 + .../Interfaces/IRecommendationSection.cs | 15 + .../Interfaces/ISubTopicRecommendation.cs | 17 + .../Questionnaire/Models/Category.cs | 2 +- .../Models/RecommendationChunk.cs | 15 + .../Models/RecommendationIntro.cs | 13 + .../Models/RecommendationSection.cs | 11 + .../Models/SubTopicRecommendation.cs | 13 + .../Helpers/GetEntitiesException.cs | 6 +- .../Persistence/QueryBuilders.cs | 2 +- .../CmsDbContext.cs | 52 +- .../Dfe.PlanTech.Infrastructure.Data.csproj | 9 +- .../Dfe.PlanTech.Infrastructure.SignIn.csproj | 4 +- src/Dfe.PlanTech.Web.Node/esbuild.config.js | 90 +- src/Dfe.PlanTech.Web.Node/package-lock.json | 6775 +++++------------ src/Dfe.PlanTech.Web.Node/package.json | 5 +- .../styles/scss/app-task-list.scss | 9 +- .../styles/scss/application.scss | 14 +- .../styles/scss/aside.scss | 10 + .../styles/scss/card-component.scss | 20 + .../styles/scss/error-message.scss | 36 + .../styles/scss/govuk-header.scss | 72 + .../styles/scss/hero-banner.scss | 12 + .../styles/scss/overrides.scss | 179 +- .../styles/scss/step-by-step.scss | 6 + src/Dfe.PlanTech.Web/Dfe.PlanTech.Web.csproj | 32 +- .../Helpers/RouteDataExtensions.cs | 4 +- src/Dfe.PlanTech.Web/Models/PageViewModel.cs | 2 +- src/Dfe.PlanTech.Web/ProgramExtensions.cs | 2 +- .../TagHelpers/TaskList/TagColour.cs | 19 +- .../TaskList/TaskListTagTagHelper.cs | 7 +- .../TagHelpers/WarningComponentTagHelper.cs | 2 +- .../ViewComponents/AccordionViewComponent.cs | 12 + .../CategorySectionViewComponent.cs | 27 +- .../RecommendationsViewComponent.cs | 22 +- .../Components/Accordion/Default.cshtml | 41 + .../Views/Shared/Components/Page.cshtml | 73 +- .../Views/Shared/_Layout.cshtml | 29 +- .../wwwroot/assets/images/favicon.svg | 1 + .../wwwroot/assets/images/govuk-icon-180.png | Bin 0 -> 1605 bytes .../wwwroot/assets/images/govuk-icon-192.png | Bin 0 -> 1678 bytes .../wwwroot/assets/images/govuk-icon-512.png | Bin 0 -> 4682 bytes .../wwwroot/assets/images/govuk-icon-mask.svg | 1 + .../assets/images/govuk-opengraph-image.png | Bin 15380 -> 8677 bytes .../wwwroot/css/application.css | 2 +- .../wwwroot/css/application.css.map | 6 +- .../wwwroot/css/step-by-step.css | 3 + .../wwwroot/css/step-by-step.css.map | 7 + src/Dfe.PlanTech.Web/wwwroot/js/all.js | 2 + src/Dfe.PlanTech.Web/wwwroot/js/all.js.map | 7 + src/Dfe.PlanTech.Web/wwwroot/js/app.js | 2 +- src/Dfe.PlanTech.Web/wwwroot/js/app.js.map | 4 +- .../wwwroot/js/govuk-frontend.min.js | 1 + .../wwwroot/js/govuk-frontend.min.js.map | 7 + .../wwwroot/js/step-by-step-navigation.js | 2 + .../wwwroot/js/step-by-step-navigation.js.map | 7 + .../wwwroot/js/step-by-step-polyfills.js | 2 + .../wwwroot/js/step-by-step-polyfills.js.map | 7 + .../container-app/terraform-configuration.md | 2 +- .../GetButtonWithEntryReferencesQueryTests.cs | 2 +- .../Queries/GetCategorySectionsQueryTests.cs | 3 +- .../Queries/GetNavigationQueryTests.cs | 9 +- .../GetPageFromContentfulQueryTests.cs | 5 +- .../Queries/GetPageFromDbQueryTests.cs | 99 +- .../Content/Queries/GetPageQueryTests.cs | 14 +- .../Content/Queries/GetRichTextsQueryTests.cs | 42 +- .../Cookie/Service/CookieServiceTests.cs | 2 +- .../Dfe.PlanTech.Application.UnitTests.csproj | 8 +- .../Queries/RecommendationComponentTests.cs | 121 + .../Queries/GetLatestResponsesQueryTests.cs | 2 +- .../Commands/SubmitAnswerCommandTests.cs | 3 +- .../GetSubmissionStatusesQueryTests.cs | 21 +- .../Queries/SubmissionStatusProcessorTests.cs | 6 +- .../Commands/RecordUserSigninCommandTests.cs | 2 +- .../AsyncQueryProvider.cs | 3 +- ...e.PlanTech.AzureFunctions.UnitTests.csproj | 8 +- .../Functions/BaseFunctionTests.cs | 12 +- .../Functions/ContentfulWebHookTests.cs | 8 +- .../Functions/QueueReceiverTests.cs | 100 +- .../Mappers/JsonToDbMapperUnitTests.cs | 2 +- .../Mappers/PageMapperTests.cs | 17 +- .../Mappers/SectionMapperTests.cs | 6 +- .../Mappers/TextBodyMapperTests.cs | 2 +- .../Dfe.PlanTech.DataValidation.Tests.csproj | 11 +- .../Renderers/Models/RichTextRendererTests.cs | 2 +- ...Infrastructure.Contentful.UnitTests.csproj | 8 +- .../Persistence/ContentfulRepositoryTests.cs | 44 +- ...ech.Infrastructure.SignIn.UnitTests.csproj | 11 +- .../Dfe.PlanTech.UnitTests.Shared.csproj | 2 +- tests/Dfe.PlanTech.Web.E2ETests/.gitignore | 4 +- .../cypress/commands/question-page.js | 4 +- .../e2e/dynamic-page-validator-readme.md | 60 + .../cypress/e2e/dynamic-page-validator.cy.js | 250 + .../cypress/e2e/pages/question-page.cy.js | 184 +- .../cypress/e2e/pages/self-assessment.cy.js | 8 +- .../content-validators/button-validator.js | 44 + .../content-validators/category-validator.js | 33 + .../content-validators/content-validator.js | 53 + .../content-validators/header-validator.js | 22 + .../inset-text-validator.js | 7 + .../content-validators/nav-link-validator.js | 8 + .../content-validators/page-validator.js | 32 + .../rich-text-content-validator.js | 105 + .../rich-text-validators/table-validator.js | 174 + .../content-validators/section-validator.js | 9 + .../content-validators/title-validator.js | 8 + .../validation-validator.js | 13 + .../content-validators/warning-validator.js | 5 + .../cypress/helpers/contentful-data-loader.js | 10 + .../cypress/helpers/contentful.js | 4 + .../cypress/helpers/page-slugs.js | 7 + .../cypress/helpers/text-helpers.js | 12 + .../package-lock.json | 117 +- tests/Dfe.PlanTech.Web.E2ETests/package.json | 3 + .../babel.config.json | 0 .../jest.config.js | 10 +- .../package-lock.json | 0 .../package.json | 0 .../PageModelAuthorisationPolicyTests.cs | 8 +- .../Controllers/CookieControllerTests.cs | 10 +- .../Controllers/PagesControllerTests.cs | 4 +- .../Dfe.PlanTech.Web.UnitTests.csproj | 8 +- .../Helpers/RouteDataExtensionsTests.cs | 68 +- .../Helpers/UserHelperTests.cs | 10 +- .../Models/ComponentModelTests.cs | 20 +- .../Routing/CheckAnswersRouterTests.cs | 2 +- .../Routing/GetRecommendationRouterTests.cs | 2 +- .../TagHelpers/TaskListTagTagHelperTests.cs | 6 +- .../AccordionViewComponentTests.cs | 30 + .../CategorySectionViewComponentTests.cs | 57 +- .../FooterLinksComponentTests.cs | 2 +- .../RecommendationsViewComponentTests.cs | 67 +- 206 files changed, 6055 insertions(+), 6394 deletions(-) create mode 100644 .github/scripts/clear-user-data-from-db.sql create mode 100644 .github/scripts/qa-data.py create mode 100644 .github/scripts/qa-visualisations.py delete mode 100644 .github/workflows/build-and-deploy-azure-function.yml delete mode 100644 .github/workflows/build-and-deploy.yml create mode 100644 .github/workflows/build-azure-function.yml create mode 100644 .github/workflows/clear-user-data-from-db.yml create mode 100644 .github/workflows/create-tag-release.yml create mode 100644 .github/workflows/deploy-azure-function.yml create mode 100644 .github/workflows/matrix-deploy-azure-function.yml create mode 100644 .github/workflows/qa-viz.yml create mode 100644 .releaserc.json create mode 100644 contentful/export-processor/.gitignore create mode 100644 contentful/export-processor/README.md rename contentful/{user-journey-info-scripts/answer.mjs => export-processor/content-types/answer.js} (100%) create mode 100644 contentful/export-processor/content-types/content-type.js create mode 100644 contentful/export-processor/content-types/content-types.js rename contentful/{user-journey-info-scripts/question.mjs => export-processor/content-types/question.js} (74%) rename contentful/{user-journey-info-scripts/recommendation.mjs => export-processor/content-types/recommendation.js} (78%) rename contentful/{user-journey-info-scripts/section.mjs => export-processor/content-types/section.js} (97%) rename contentful/{user-journey-info-scripts/data-mapper.mjs => export-processor/data-mapper.js} (57%) create mode 100644 contentful/export-processor/index.js rename contentful/{user-journey-info-scripts => export-processor/user-journey}/README.md (100%) rename contentful/{user-journey-info-scripts/question-answer.mjs => export-processor/user-journey/question-answer.js} (100%) rename contentful/{user-journey-info-scripts/test-suit-generator.mjs => export-processor/user-journey/test-suite-generator.js} (81%) rename contentful/{user-journey-info-scripts/user-journey.mjs => export-processor/user-journey/user-journey.js} (100%) delete mode 100644 contentful/user-journey-info-scripts/.gitignore delete mode 100644 contentful/user-journey-info-scripts/functions.mjs create mode 100644 src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2024/20240209_1448_FixSelectAllRichTextContentForPageSlugFunction.sql create mode 100644 src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2024/20240209_1647_CreateRichTextContentWithPageSlugView.sql create mode 100644 src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2024/20240219_1407_FixWarningComponent.sql create mode 100644 src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2024/20240229_1115_AddOrderColumnToContentComponentTable.sql create mode 100644 src/Dfe.PlanTech.Domain/Content/Interfaces/IAccordion.cs create mode 100644 src/Dfe.PlanTech.Domain/Content/Models/Accordion.cs create mode 100644 src/Dfe.PlanTech.Domain/Content/Models/RichTextContentWithSlugDbEntity.cs create mode 100644 src/Dfe.PlanTech.Domain/Questionnaire/Interfaces/IRecommendationChunk.cs create mode 100644 src/Dfe.PlanTech.Domain/Questionnaire/Interfaces/IRecommendationIntro.cs create mode 100644 src/Dfe.PlanTech.Domain/Questionnaire/Interfaces/IRecommendationSection.cs create mode 100644 src/Dfe.PlanTech.Domain/Questionnaire/Interfaces/ISubTopicRecommendation.cs create mode 100644 src/Dfe.PlanTech.Domain/Questionnaire/Models/RecommendationChunk.cs create mode 100644 src/Dfe.PlanTech.Domain/Questionnaire/Models/RecommendationIntro.cs create mode 100644 src/Dfe.PlanTech.Domain/Questionnaire/Models/RecommendationSection.cs create mode 100644 src/Dfe.PlanTech.Domain/Questionnaire/Models/SubTopicRecommendation.cs create mode 100644 src/Dfe.PlanTech.Web.Node/styles/scss/aside.scss create mode 100644 src/Dfe.PlanTech.Web.Node/styles/scss/card-component.scss create mode 100644 src/Dfe.PlanTech.Web.Node/styles/scss/error-message.scss create mode 100644 src/Dfe.PlanTech.Web.Node/styles/scss/govuk-header.scss create mode 100644 src/Dfe.PlanTech.Web.Node/styles/scss/hero-banner.scss create mode 100644 src/Dfe.PlanTech.Web.Node/styles/scss/step-by-step.scss create mode 100644 src/Dfe.PlanTech.Web/ViewComponents/AccordionViewComponent.cs create mode 100644 src/Dfe.PlanTech.Web/Views/Shared/Components/Accordion/Default.cshtml create mode 100644 src/Dfe.PlanTech.Web/wwwroot/assets/images/favicon.svg create mode 100644 src/Dfe.PlanTech.Web/wwwroot/assets/images/govuk-icon-180.png create mode 100644 src/Dfe.PlanTech.Web/wwwroot/assets/images/govuk-icon-192.png create mode 100644 src/Dfe.PlanTech.Web/wwwroot/assets/images/govuk-icon-512.png create mode 100644 src/Dfe.PlanTech.Web/wwwroot/assets/images/govuk-icon-mask.svg create mode 100644 src/Dfe.PlanTech.Web/wwwroot/css/step-by-step.css create mode 100644 src/Dfe.PlanTech.Web/wwwroot/css/step-by-step.css.map create mode 100644 src/Dfe.PlanTech.Web/wwwroot/js/all.js create mode 100644 src/Dfe.PlanTech.Web/wwwroot/js/all.js.map create mode 100644 src/Dfe.PlanTech.Web/wwwroot/js/govuk-frontend.min.js create mode 100644 src/Dfe.PlanTech.Web/wwwroot/js/govuk-frontend.min.js.map create mode 100644 src/Dfe.PlanTech.Web/wwwroot/js/step-by-step-navigation.js create mode 100644 src/Dfe.PlanTech.Web/wwwroot/js/step-by-step-navigation.js.map create mode 100644 src/Dfe.PlanTech.Web/wwwroot/js/step-by-step-polyfills.js create mode 100644 src/Dfe.PlanTech.Web/wwwroot/js/step-by-step-polyfills.js.map create mode 100644 tests/Dfe.PlanTech.Application.UnitTests/Questionnaire/Queries/RecommendationComponentTests.cs create mode 100644 tests/Dfe.PlanTech.Web.E2ETests/cypress/e2e/dynamic-page-validator-readme.md create mode 100644 tests/Dfe.PlanTech.Web.E2ETests/cypress/e2e/dynamic-page-validator.cy.js create mode 100644 tests/Dfe.PlanTech.Web.E2ETests/cypress/helpers/content-validators/button-validator.js create mode 100644 tests/Dfe.PlanTech.Web.E2ETests/cypress/helpers/content-validators/category-validator.js create mode 100644 tests/Dfe.PlanTech.Web.E2ETests/cypress/helpers/content-validators/content-validator.js create mode 100644 tests/Dfe.PlanTech.Web.E2ETests/cypress/helpers/content-validators/header-validator.js create mode 100644 tests/Dfe.PlanTech.Web.E2ETests/cypress/helpers/content-validators/inset-text-validator.js create mode 100644 tests/Dfe.PlanTech.Web.E2ETests/cypress/helpers/content-validators/nav-link-validator.js create mode 100644 tests/Dfe.PlanTech.Web.E2ETests/cypress/helpers/content-validators/page-validator.js create mode 100644 tests/Dfe.PlanTech.Web.E2ETests/cypress/helpers/content-validators/rich-text-content-validator.js create mode 100644 tests/Dfe.PlanTech.Web.E2ETests/cypress/helpers/content-validators/rich-text-validators/table-validator.js create mode 100644 tests/Dfe.PlanTech.Web.E2ETests/cypress/helpers/content-validators/section-validator.js create mode 100644 tests/Dfe.PlanTech.Web.E2ETests/cypress/helpers/content-validators/title-validator.js create mode 100644 tests/Dfe.PlanTech.Web.E2ETests/cypress/helpers/content-validators/validation-validator.js create mode 100644 tests/Dfe.PlanTech.Web.E2ETests/cypress/helpers/content-validators/warning-validator.js create mode 100644 tests/Dfe.PlanTech.Web.E2ETests/cypress/helpers/contentful-data-loader.js create mode 100644 tests/Dfe.PlanTech.Web.E2ETests/cypress/helpers/contentful.js create mode 100644 tests/Dfe.PlanTech.Web.E2ETests/cypress/helpers/page-slugs.js create mode 100644 tests/Dfe.PlanTech.Web.E2ETests/cypress/helpers/text-helpers.js rename babel.config.json => tests/Dfe.PlanTech.Web.Node.UnitTests/babel.config.json (100%) rename jest.config.js => tests/Dfe.PlanTech.Web.Node.UnitTests/jest.config.js (96%) rename package-lock.json => tests/Dfe.PlanTech.Web.Node.UnitTests/package-lock.json (100%) rename package.json => tests/Dfe.PlanTech.Web.Node.UnitTests/package.json (100%) create mode 100644 tests/Dfe.PlanTech.Web.UnitTests/ViewComponents/AccordionViewComponentTests.cs diff --git a/.github/actions/build-dotnet-app/action.yml b/.github/actions/build-dotnet-app/action.yml index 7ce30bfe3..a1caeb0ff 100644 --- a/.github/actions/build-dotnet-app/action.yml +++ b/.github/actions/build-dotnet-app/action.yml @@ -14,7 +14,7 @@ runs: steps: - name: Setup .NET Core SDK ${{ inputs.dotnet_version }} - uses: actions/setup-dotnet@v3 + uses: actions/setup-dotnet@v4 with: dotnet-version: ${{ inputs.dotnet_version }} - name: Install dependencies diff --git a/.github/actions/post-terraform-results/action.yml b/.github/actions/post-terraform-results/action.yml index 05c4059c6..05b14296a 100644 --- a/.github/actions/post-terraform-results/action.yml +++ b/.github/actions/post-terraform-results/action.yml @@ -41,7 +41,7 @@ runs: steps: - name: Update PR with Terraform results - uses: actions/github-script@v6 + uses: actions/github-script@v7 if: github.event_name == 'pull_request' env: PLAN: "terraform\n${{ inputs.plan_stdout }}" diff --git a/.github/actions/run-e2e-tests/action.yml b/.github/actions/run-e2e-tests/action.yml index 7d4538211..06f877765 100644 --- a/.github/actions/run-e2e-tests/action.yml +++ b/.github/actions/run-e2e-tests/action.yml @@ -33,14 +33,14 @@ runs: config: baseUrl=${{ inputs.url }} - name: Store screenshots on test failure - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: failure() with: name: cypress-screenshots path: ./tests/Dfe.PlanTech.Web.E2ETests/cypress/screenshots - name: Store videos - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: always() with: name: cypress-videos diff --git a/.github/scripts/clear-user-data-from-db.sql b/.github/scripts/clear-user-data-from-db.sql new file mode 100644 index 000000000..e8a574ba0 --- /dev/null +++ b/.github/scripts/clear-user-data-from-db.sql @@ -0,0 +1,11 @@ +BEGIN TRANSACTION; + + DELETE FROM [dbo].[response]; + DELETE FROM [dbo].[submission]; + DELETE FROM [dbo].[question]; + DELETE FROM [dbo].[answer]; + DELETE FROM [dbo].[signin]; + DELETE FROM [dbo].[user]; + DELETE FROM [dbo].[establishment]; + +COMMIT; diff --git a/.github/scripts/qa-data.py b/.github/scripts/qa-data.py new file mode 100644 index 000000000..1bf9e6c57 --- /dev/null +++ b/.github/scripts/qa-data.py @@ -0,0 +1,65 @@ +import os +import pyodbc +import json +import struct +from azure import identity + +def query_to_json(connection_string, sql_query): + + if os.getenv("ENV") != "dev": + credential = identity.DefaultAzureCredential(exclude_interactive_browser_credential=True) + token_bytes = credential.get_token("https://database.windows.net/.default").token.encode("UTF-16-LE") + token_struct = struct.pack(f'> $GITHUB_OUTPUT - echo "branch=$GIT_BRANCH" >> $GITHUB_OUTPUT - echo "release=${RELEASE}" >> $GITHUB_OUTPUT - echo "checked-out-sha=${CHECKED_OUT_SHA}" >> $GITHUB_OUTPUT - - create-tag: - name: Tag and release - needs: set-env - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v3 - with: - ref: ${{ github.ref }} - - - name: Create tag - run: | - git tag ${{ needs.set-env.outputs.release }} - git push origin ${{ needs.set-env.outputs.release }} - - - name: Create release - uses: "actions/github-script@v6" - with: - github-token: "${{ secrets.GITHUB_TOKEN }}" - script: | - try { - await github.rest.repos.createRelease({ - draft: ${{ needs.set-env.outputs.environment == 'staging' }}, - generate_release_notes: true, - name: "${{ needs.set-env.outputs.release }}", - owner: context.repo.owner, - prerelease: ${{ needs.set-env.outputs.environment == 'staging' }}, - repo: context.repo.repo, - tag_name: "${{ needs.set-env.outputs.release }}", - }); - } catch (error) { - core.setFailed(error.message); - } - - upgrade-database: - name: Upgrade ${{ needs.set-env.outputs.environment }} database - needs: set-env - runs-on: ubuntu-22.04 - environment: ${{ needs.set-env.outputs.environment }} - steps: - - uses: actions/checkout@v3 - with: - ref: ${{ github.ref }} - - - name: Azure CLI Login - uses: ./.github/actions/azure-login - with: - az_tenant_id: ${{ secrets.AZ_TENANT_ID }} - az_subscription_id: ${{ secrets.AZ_SUBSCRIPTION_ID }} - az_client_id: ${{ secrets.AZ_CLIENT_ID }} - az_client_secret: ${{ secrets.AZ_CLIENT_SECRET }} - - - name: Build and run database upgrader - uses: ./.github/actions/build-and-run-database-upgrader - with: - dotnet_version: ${{ vars.DOTNET_VERSION }} - az_keyvault_name: ${{ secrets.AZ_ENVIRONMENT }}${{ secrets.DFE_PROJECT_NAME }}-kv - az_keyvault_database_connectionstring_name: ${{ secrets.AZ_KEYVAULT_DATABASE_CONNECTIONSTRING_NAME }} - az_sql_database_server_name: ${{ secrets.AZ_ENVIRONMENT }}${{ secrets.DFE_PROJECT_NAME }} - az_resource_group_name: ${{ secrets.AZ_ENVIRONMENT }}${{ secrets.DFE_PROJECT_NAME }} - environment: ${{ needs.set-env.outputs.environment }} - sql_analytics_username: ${{ secrets.ANALYTICS_USERNAME }} - sql_analytics_password: ${{ secrets.ANALYTICS_PASSWORD }} - - build-and-push-image: - name: Build and push to ACR - needs: [set-env, upgrade-database] - runs-on: ubuntu-22.04 - environment: ${{ needs.set-env.outputs.environment }} - steps: - - uses: actions/checkout@v3 - with: - ref: ${{ github.ref }} - - - name: Azure Container Registry login - uses: docker/login-action@v2 - with: - username: ${{ secrets.AZ_CLIENT_ID }} - password: ${{ secrets.AZ_CLIENT_SECRET }} - registry: ${{ secrets.AZ_ACR_URL }} - - - name: Build and push docker image - uses: docker/build-push-action@v3 - with: - context: ./ - file: ./src/Dfe.PlanTech.Web/Dockerfile - build-args: COMMIT_SHA=${{ needs.set-env.outputs.checked-out-sha }} - tags: | - ${{ secrets.AZ_ACR_URL }}/${{ env.DOCKER_IMAGE }}:${{ needs.set-env.outputs.branch }} - ${{ secrets.AZ_ACR_URL }}/${{ env.DOCKER_IMAGE }}:${{ needs.set-env.outputs.release }} - ${{ secrets.AZ_ACR_URL }}/${{ env.DOCKER_IMAGE }}:sha-${{ needs.set-env.outputs.checked-out-sha }} - ${{ secrets.AZ_ACR_URL }}/${{ env.DOCKER_IMAGE }}:latest - push: true - - deploy-image: - name: Deploy to ${{ needs.set-env.outputs.environment }} (${{ needs.set-env.outputs.release }}) - needs: [ build-and-push-image, set-env ] - runs-on: ubuntu-22.04 - environment: ${{ needs.set-env.outputs.environment }} - steps: - - uses: actions/checkout@v3 - with: - ref: ${{ github.ref }} - - - name: Azure CLI Login - uses: ./.github/actions/azure-login - with: - az_tenant_id: ${{ secrets.AZ_TENANT_ID }} - az_subscription_id: ${{ secrets.AZ_SUBSCRIPTION_ID }} - az_client_id: ${{ secrets.AZ_CLIENT_ID }} - az_client_secret: ${{ secrets.AZ_CLIENT_SECRET }} - - - name: Update Azure Container Apps Revision - uses: azure/CLI@v1 - id: azure - with: - azcliversion: 2.45.0 - inlineScript: | - az config set extension.use_dynamic_install=yes_without_prompt - az containerapp update \ - --name ${{ secrets.AZ_ACA_NAME }} \ - --resource-group ${{ secrets.AZ_ACA_RESOURCE_GROUP }} \ - --image ${{ secrets.AZ_ACR_URL }}/${{ env.DOCKER_IMAGE }}:${{ needs.set-env.outputs.release }} \ - --output none - &> /dev/null \ No newline at end of file diff --git a/.github/workflows/build-azure-function.yml b/.github/workflows/build-azure-function.yml new file mode 100644 index 000000000..307ad2ad5 --- /dev/null +++ b/.github/workflows/build-azure-function.yml @@ -0,0 +1,45 @@ +name: Build .NET Azure Function App + +on: + workflow_call: + inputs: + artifact: + type: string + required: true + +concurrency: + group: ${{ github.workflow }}-build-azure-function + cancel-in-progress: true + +env: + DOTNET_VERSION: ${{ vars.DOTNET_VERSION }} + +jobs: + build-image: + runs-on: ubuntu-22.04 + name: Build .NET Azure Function App & Upload Zip Artifact + + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + with: + ref: ${{ github.ref }} + + - name: Set up .NET + uses: actions/setup-dotnet@v4 + with: + dotnet-version: ${{ env.DOTNET_VERSION }} + + - name: Install Dependencies + shell: bash + run: dotnet restore ./src/Dfe.PlanTech.AzureFunctions/Dfe_PlanTech_AzureFunctions.csproj + + - name: Build Azure Function App + shell: bash + run: dotnet publish ./src/Dfe.PlanTech.AzureFunctions/Dfe_PlanTech_AzureFunctions.csproj --configuration Release --no-restore --output ./build + + - name: Upload Artifact + uses: actions/upload-artifact@v4 + with: + name: ${{ inputs.artifact }} + path: ./build diff --git a/.github/workflows/build-image.yml b/.github/workflows/build-image.yml index fccbdb188..7ed971ee0 100644 --- a/.github/workflows/build-image.yml +++ b/.github/workflows/build-image.yml @@ -11,42 +11,38 @@ on: required: true concurrency: - group: ${{ github.workflow }}-${{ github.event.inputs.environment }} - cancel-in-progress: true + group: ${{ github.workflow }}-${{ github.event.inputs.environment }} + cancel-in-progress: true env: - DOCKER_IMAGE: plan-technology-for-your-school - GITHUB_CONTAINER_REGISTRY: ghcr.io - ORG_NAME: dfe-digital - NODE_VERSION: 18.x + DOCKER_IMAGE: plan-technology-for-your-school + GITHUB_CONTAINER_REGISTRY: ghcr.io + ORG_NAME: dfe-digital jobs: - - build-image: - - runs-on: ubuntu-22.04 - name: Build & Publish Image - - steps: - - - name: Checkout Repository - uses: actions/checkout@v3 - with: - ref: ${{ github.ref }} - - - name: GitHub Container Registry Login - uses: docker/login-action@v3 - with: - registry: ${{ env.GITHUB_CONTAINER_REGISTRY }} - username: ${{ github.repository_owner }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Build Image & Publish To GCR - uses: docker/build-push-action@v4 - with: - context: ./ - file: ./src/Dfe.PlanTech.Web/Dockerfile - build-args: COMMIT_SHA=${{ inputs.checked-out-sha }} - tags: | - ${{ env.GITHUB_CONTAINER_REGISTRY }}/${{ env.ORG_NAME }}/${{ env.DOCKER_IMAGE }}:${{ inputs.branch }}-${{ inputs.checked-out-sha }} - push: true \ No newline at end of file + build-image: + runs-on: ubuntu-22.04 + name: Build & Publish Image + + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + with: + ref: ${{ github.ref }} + + - name: GitHub Container Registry Login + uses: docker/login-action@v3 + with: + registry: ${{ env.GITHUB_CONTAINER_REGISTRY }} + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build Image & Publish To GCR + uses: docker/build-push-action@v5 + with: + context: ./ + file: ./src/Dfe.PlanTech.Web/Dockerfile + build-args: COMMIT_SHA=${{ inputs.checked-out-sha }} + tags: | + ${{ env.GITHUB_CONTAINER_REGISTRY }}/${{ env.ORG_NAME }}/${{ env.DOCKER_IMAGE }}:${{ inputs.branch }}-${{ inputs.checked-out-sha }} + push: true diff --git a/.github/workflows/build-web-assets.yml b/.github/workflows/build-web-assets.yml index f8b8b76e6..89013599f 100644 --- a/.github/workflows/build-web-assets.yml +++ b/.github/workflows/build-web-assets.yml @@ -4,10 +4,10 @@ on: pull_request: branches: ["main", "development"] paths: - - 'src/Dfe.PlanTech.Web.Node/**' + - "src/Dfe.PlanTech.Web.Node/**" concurrency: - group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}' + group: "${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}" cancel-in-progress: true jobs: @@ -17,15 +17,15 @@ jobs: defaults: run: working-directory: ./src/Dfe.PlanTech.Web.Node/ - + steps: - name: Clone repo - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: ${{ github.head_ref }} - name: Setup Node.js - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: "latest" @@ -48,4 +48,3 @@ jobs: else echo "No changes to commit" fi - \ No newline at end of file diff --git a/.github/workflows/clear-user-data-from-db.yml b/.github/workflows/clear-user-data-from-db.yml new file mode 100644 index 000000000..795745dbd --- /dev/null +++ b/.github/workflows/clear-user-data-from-db.yml @@ -0,0 +1,80 @@ +name: Clear user data from DB + +on: + workflow_dispatch: + inputs: + environment: + description: "What environment to clear" + required: true + type: choice + options: + - development + - tst + - staging + +jobs: + clear-db: + if: ${{ inputs.environment != 'Production' }} + environment: ${{ inputs.environment }} + name: Clear user data from DB + runs-on: ubuntu-latest + env: + az_keyvault_name: ${{ secrets.AZ_ENVIRONMENT }}${{ secrets.DFE_PROJECT_NAME }}-kv + az_keyvault_database_connectionstring_name: ${{ secrets.AZ_KEYVAULT_DATABASE_CONNECTIONSTRING_NAME }} + az_sql_database_server_name: ${{ secrets.AZ_ENVIRONMENT }}${{ secrets.DFE_PROJECT_NAME }} + az_resource_group_name: ${{ secrets.AZ_ENVIRONMENT }}${{ secrets.DFE_PROJECT_NAME }} + SQL_IP_NAME: github-action-clear-user-data + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Log Environment + run: | + echo "Environment: ${{ inputs.environment }}" + + - name: Login with AZ + uses: ./.github/actions/azure-login + with: + az_tenant_id: ${{ secrets.AZ_TENANT_ID }} + az_subscription_id: ${{ secrets.AZ_SUBSCRIPTION_ID }} + az_client_id: ${{ secrets.AZ_CLIENT_ID }} + az_client_secret: ${{ secrets.AZ_CLIENT_SECRET }} + + - name: Get workflow IP address + id: whats-my-ip + uses: ./.github/actions/whats-my-ip-address + + - name: Add Azure firewall rules + uses: ./.github/actions/azure-ip-whitelist + with: + ip_address: ${{ steps.whats-my-ip.outputs.ip }} + verb: "add" + az_keyvault_name: ${{ env.az_keyvault_name }} + az_ip_name: ${{ env.SQL_IP_NAME }} + az_resource_group: ${{ env.az_resource_group_name}} + az_sql_database_server_name: ${{ env.az_sql_database_server_name }} + + - name: Get connection string + id: get-connection-string + uses: ./.github/actions/azure-get-db-connectionstring + with: + az_keyvault_name: ${{ env.az_keyvault_name }} + az_keyvault_database_connectionstring_name: ${{ env.az_keyvault_database_connectionstring_name }} + + - name: Run clear DB SQL script + uses: azure/sql-action@v2.2 + with: + connection-string: ${{ steps.get-connection-string.outputs.connection_string }} + path: "./.github/scripts/clear-user-data-from-db.sql" + + - name: Remove Azure firewall rules + if: always() + uses: ./.github/actions/azure-ip-whitelist + with: + ip_address: ${{ steps.whats-my-ip.outputs.ip }} + verb: "remove" + az_keyvault_name: ${{ env.az_keyvault_name }} + az_ip_name: ${{ env.SQL_IP_NAME }} + az_resource_group: ${{ env.az_resource_group_name}} + az_sql_database_server_name: ${{ env.az_sql_database_server_name }} diff --git a/.github/workflows/code-pr-check.yml b/.github/workflows/code-pr-check.yml index 1ec10629b..82ec89cb3 100644 --- a/.github/workflows/code-pr-check.yml +++ b/.github/workflows/code-pr-check.yml @@ -1,37 +1,36 @@ -name: Code PR Check +name: Code PR Check on: push: branches: ["main", "development"] paths: - - 'src/**' - - 'tests/**' + - "src/**" + - "tests/**" pull_request: branches: ["main", "development"] paths: - - 'src/**' - - 'tests/**' - - '.github/workflows/code-pr-check.yml' + - "src/**" + - "tests/**" + - ".github/workflows/code-pr-check.yml" concurrency: - group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}' + group: "${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}" cancel-in-progress: true - + env: DOTNET_VERSION: ${{ vars.DOTNET_VERSION }} - -jobs: +jobs: get-src-dir-list: name: Get Directories for Linting runs-on: ubuntu-22.04 if: ${{ github.event_name == 'pull_request' }} outputs: directories: ${{ steps.list-dir.outputs.directories }} - + steps: - name: Checkout Repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Get Directories id: list-dir @@ -54,12 +53,12 @@ jobs: pull-requests: write steps: - - name: Checkout Repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Set up .NET - uses: actions/setup-dotnet@v3 + uses: actions/setup-dotnet@v4 + if: env.directory_has_changes == 'true' with: dotnet-version: ${{ env.DOTNET_VERSION }} cache: false @@ -69,6 +68,7 @@ jobs: - name: Run Linter uses: wearerequired/lint-action@v2 + if: env.directory_has_changes == 'true' with: dotnet_format: true dotnet_format_dir: ./src/${{ matrix.workspace }} @@ -79,7 +79,7 @@ jobs: commit: true github_token: ${{ secrets.GITHUB_TOKEN }} - build-test-web-app: + build-test-web-app: name: Build and run unit tests runs-on: ubuntu-22.04 if: ${{ always() && ( github.event_name == 'pull_request' && needs.lint-code.result == 'success' ) || ( github.event_name == 'push' && needs.lint-code.result == 'skipped' ) }} @@ -87,10 +87,10 @@ jobs: steps: - name: Check out repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Cache SonarCloud packages - uses: actions/cache@v1 + uses: actions/cache@v4 with: path: ~\sonar\cache key: ${{ runner.os }}-sonar @@ -98,16 +98,16 @@ jobs: - name: Install dotnet coverage run: dotnet tool install --global dotnet-coverage --version 17.9.3 - + - name: Install SonarCloud scanners run: dotnet tool install --global dotnet-sonarscanner - name: Install latest JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: - distribution: 'microsoft' - java-version: '17' - + distribution: "microsoft" + java-version: "17" + - name: Start SonarCloud scanner run: | dotnet-sonarscanner begin \ @@ -120,11 +120,11 @@ jobs: /d:sonar.issue.ignore.multicriteria=e1 \ /d:sonar.issue.ignore.multicriteria.e1.ruleKey=csharpsquid:S6602 \ /d:sonar.issue.ignore.multicriteria.e1.resourceKey=src/**/*.cs - - - name: Build web app + + - name: Build web app uses: ./.github/actions/build-dotnet-app with: - dotnet_version: ${{ env.DOTNET_VERSION }} + dotnet_version: ${{ env.DOTNET_VERSION }} solution_filename: plan-technology-for-your-school.sln - name: Run unit tests @@ -139,23 +139,23 @@ jobs: run: dotnet-sonarscanner end /d:sonar.login="${{ secrets.SONAR_TOKEN }}" - name: Archive code coverage results - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: code-coverage-report path: coverage.xml - build-database-upgrader: + build-database-upgrader: name: Build database upgrader runs-on: ubuntu-22.04 steps: - name: Check out repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - - name: Build database upgrader + - name: Build database upgrader uses: ./.github/actions/build-dotnet-app with: - dotnet_version: ${{ env.DOTNET_VERSION }} + dotnet_version: ${{ env.DOTNET_VERSION }} solution_filename: Dfe.PlanTech.DatabaseUpgrader.sln run-javascript-tests: @@ -163,23 +163,25 @@ jobs: name: Run javascript tests steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup Node.js - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: "latest" - name: Install Dependencies + working-directory: ./tests/Dfe.PlanTech.Web.Node.UnitTests/ run: npm install - name: Run the tests + working-directory: ./tests/Dfe.PlanTech.Web.Node.UnitTests/ run: npm test - name: Test report uses: dorny/test-reporter@v1 - if: success() || failure() # run this step even if previous step failed + if: success() || failure() # run this step even if previous step failed with: - name: JEST Tests # Name of the check run which will be created - path: ./junit.xml # Path to test results - reporter: jest-junit # Format of test results \ No newline at end of file + name: JEST Tests # Name of the check run which will be created + path: ./tests/Dfe.PlanTech.Web.Node.UnitTests/junit.xml # Path to test results + reporter: jest-junit # Format of test results diff --git a/.github/workflows/create-tag-release.yml b/.github/workflows/create-tag-release.yml new file mode 100644 index 000000000..8c4e4cb20 --- /dev/null +++ b/.github/workflows/create-tag-release.yml @@ -0,0 +1,42 @@ +name: Create & Tag Release + +on: + workflow_call: + +jobs: + create-tag-release: + runs-on: ubuntu-22.04 + name: Tag & Create Release + permissions: + contents: write + issues: write + pull-requests: write + id-token: write + + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 + persist-credentials: false + + - name: Setup Node.JS + uses: actions/setup-node@v4 + with: + node-version: "lts/*" + + - name: Install Dependencies + run: | + npm i npx@10 + npm i @semantic-release/commit-analyzer@11 + npm i @semantic-release/release-notes-generator@12 + npm i @semantic-release/github@9 + npm i @semantic-release/exec@6 + + - name: Verify Integrity of Installed Dependencies + run: npm audit signatures + + - name: Create Release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: npx semantic-release@23 diff --git a/.github/workflows/deploy-azure-function.yml b/.github/workflows/deploy-azure-function.yml new file mode 100644 index 000000000..e3227c2e5 --- /dev/null +++ b/.github/workflows/deploy-azure-function.yml @@ -0,0 +1,47 @@ +on: + workflow_call: + inputs: + environment: + type: string + required: true + artifact: + type: string + required: true + +concurrency: + group: ${{ github.workflow }}-deploy-${{ inputs.environment }}-azure-function + cancel-in-progress: true + +jobs: + deploy-image: + runs-on: ubuntu-22.04 + name: Deploy .NET Azure Function App + environment: ${{ inputs.environment }} + env: + AZURE_FUNCTIONAPP_NAME: "${{ secrets.AZ_ENVIRONMENT }}plantechcontentfulfunction" + + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + with: + ref: ${{ github.ref }} + + - name: Download Artifact + uses: actions/download-artifact@v4 + with: + name: ${{ inputs.artifact }} + path: ./build + + - name: Azure CLI Login + uses: ./.github/actions/azure-login + with: + az_tenant_id: ${{ secrets.AZ_TENANT_ID }} + az_subscription_id: ${{ secrets.AZ_SUBSCRIPTION_ID }} + az_client_id: ${{ secrets.AZ_CLIENT_ID }} + az_client_secret: ${{ secrets.AZ_CLIENT_SECRET }} + + - name: Deploy Azure Function App + uses: Azure/functions-action@v1 + with: + app-name: ${{ env.AZURE_FUNCTIONAPP_NAME }} + package: ./build diff --git a/.github/workflows/deploy-image.yml b/.github/workflows/deploy-image.yml index 0c786c761..63fb674ea 100644 --- a/.github/workflows/deploy-image.yml +++ b/.github/workflows/deploy-image.yml @@ -1,194 +1,139 @@ name: Deploy Image to Environment on: - workflow_call: - inputs: - environment: - type: string - required: true - branch: - type: string - required: true - checked-out-sha: - type: string - required: true + workflow_call: + inputs: + environment: + type: string + required: true + branch: + type: string + required: true + checked-out-sha: + type: string + required: true concurrency: - group: ${{ github.workflow }}-${{ github.event.inputs.environment }} - cancel-in-progress: true + group: ${{ github.workflow }}-${{ github.event.inputs.environment }} + cancel-in-progress: true env: - AZ_FRONTDOOR_URL: ${{ inputs.environment == 'staging' && secrets.AZ_FRONTDOOR_URL_STAGING || secrets.AZ_FRONTDOOR_URL }} - GCR_DOCKER_IMAGE: plan-technology-for-your-school - ACR_DOCKER_IMAGE: plan-tech-app - GITHUB_CONTAINER_REGISTRY: ghcr.io - ORG_NAME: dfe-digital + AZ_FRONTDOOR_URL: ${{ inputs.environment == 'staging' && secrets.AZ_FRONTDOOR_URL_STAGING || secrets.AZ_FRONTDOOR_URL }} + GCR_DOCKER_IMAGE: plan-technology-for-your-school + ACR_DOCKER_IMAGE: plan-tech-app + GITHUB_CONTAINER_REGISTRY: ghcr.io + ORG_NAME: dfe-digital jobs: + upgrade-database: + runs-on: ubuntu-22.04 + name: Update Database for ${{ inputs.environment }} + environment: ${{ inputs.environment }} - set-env: - - runs-on: ubuntu-22.04 - name: Set Environment (Deploy Image) - outputs: - release: ${{ steps.var.outputs.release }} - steps: - - id: var - run: | - RELEASE=${{ inputs.environment }}-`date +%Y-%m-%d`.${{ github.run_number }} - echo "release=${RELEASE}" >> $GITHUB_OUTPUT - - create-tag-release: - - runs-on: ubuntu-22.04 - name: Tag & Create Release - needs: set-env - - steps: - - uses: actions/checkout@v3 - with: - ref: ${{ github.ref }} - - - name: Create Tag - run: | - git tag ${{ needs.set-env.outputs.release }} - git push origin ${{ needs.set-env.outputs.release }} - - - name: Create Release - uses: "actions/github-script@v7" - with: - github-token: "${{ secrets.GITHUB_TOKEN }}" - script: | - try { - await github.rest.repos.createRelease({ - draft: ${{ inputs.environment == 'staging' }}, - generate_release_notes: true, - name: "${{ needs.set-env.outputs.release }}", - owner: context.repo.owner, - prerelease: ${{ inputs.environment == 'staging' }}, - repo: context.repo.repo, - tag_name: "${{ needs.set-env.outputs.release }}", - }); - } catch (error) { - core.setFailed(error.message); - } - - upgrade-database: - - runs-on: ubuntu-22.04 - name: Update Database for ${{ inputs.environment }} - environment: ${{ inputs.environment }} - needs: set-env - - steps: - - uses: actions/checkout@v3 - with: - ref: ${{ github.ref }} - - - name: Azure CLI Login - uses: ./.github/actions/azure-login - with: - az_tenant_id: ${{ secrets.AZ_TENANT_ID }} - az_subscription_id: ${{ secrets.AZ_SUBSCRIPTION_ID }} - az_client_id: ${{ secrets.AZ_CLIENT_ID }} - az_client_secret: ${{ secrets.AZ_CLIENT_SECRET }} - - - name: Build & Run Database Upgrader - uses: ./.github/actions/build-and-run-database-upgrader - with: - dotnet_version: ${{ vars.DOTNET_VERSION }} - az_keyvault_name: ${{ secrets.AZ_ENVIRONMENT }}${{ secrets.DFE_PROJECT_NAME }}-kv - az_keyvault_database_connectionstring_name: ${{ secrets.AZ_KEYVAULT_DATABASE_CONNECTIONSTRING_NAME }} - az_sql_database_server_name: ${{ secrets.AZ_ENVIRONMENT }}${{ secrets.DFE_PROJECT_NAME }} - az_resource_group_name: ${{ secrets.AZ_ENVIRONMENT }}${{ secrets.DFE_PROJECT_NAME }} - environment: ${{ inputs.environment }} - sql_analytics_username: ${{ secrets.ANALYTICS_USERNAME }} - sql_analytics_password: ${{ secrets.ANALYTICS_PASSWORD }} - - pull-image-from-gcr-and-publish-to-acr: - - runs-on: ubuntu-22.04 - name: Pull Image From GitHub Container Registry and Publish to Azure Container Registry - environment: ${{ inputs.environment }} - needs: [set-env, upgrade-database] - - steps: - - - name: GitHub Container Registry Login - uses: docker/login-action@v3 - with: - registry: ${{ env.GITHUB_CONTAINER_REGISTRY }} - username: ${{ github.repository_owner }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Pull Image From GCR - run: docker pull ${{ env.GITHUB_CONTAINER_REGISTRY }}/${{ env.ORG_NAME }}/${{ env.GCR_DOCKER_IMAGE }}:${{ inputs.branch }}-${{ inputs.checked-out-sha }} - - - name: Azure Container Registry Login - uses: docker/login-action@v3 - with: - registry: ${{ secrets.AZ_ACR_URL }} - username: ${{ secrets.AZ_CLIENT_ID }} - password: ${{ secrets.AZ_CLIENT_SECRET }} - - - name: Push Image To ACR - run: | - docker tag ${{ env.GITHUB_CONTAINER_REGISTRY }}/${{ env.ORG_NAME }}/${{ env.GCR_DOCKER_IMAGE }}:${{ inputs.branch }}-${{ inputs.checked-out-sha }} ${{ secrets.AZ_ACR_URL }}/${{ env.ACR_DOCKER_IMAGE }}:${{ inputs.branch }}-${{ inputs.checked-out-sha }}-${{ inputs.environment }} - docker push ${{ secrets.AZ_ACR_URL }}/${{ env.ACR_DOCKER_IMAGE }}:${{ inputs.branch }}-${{ inputs.checked-out-sha }}-${{ inputs.environment }} - - deploy-image: - - runs-on: ubuntu-22.04 - name: Deploy Image To ${{ inputs.environment }} (${{ needs.set-env.outputs.release }}) - environment: ${{ inputs.environment }} - needs: [set-env, upgrade-database, pull-image-from-gcr-and-publish-to-acr] - - steps: - - - uses: actions/checkout@v3 - with: - ref: ${{ github.ref }} - - - name: Azure CLI Login - uses: ./.github/actions/azure-login - with: - az_tenant_id: ${{ secrets.AZ_TENANT_ID }} - az_subscription_id: ${{ secrets.AZ_SUBSCRIPTION_ID }} - az_client_id: ${{ secrets.AZ_CLIENT_ID }} - az_client_secret: ${{ secrets.AZ_CLIENT_SECRET }} - - - name: Update Azure Container Apps Revision - uses: azure/CLI@v1 - id: azure - with: - azcliversion: 2.45.0 - inlineScript: | - az config set extension.use_dynamic_install=yes_without_prompt - az containerapp update \ - --name ${{ secrets.AZ_ACA_NAME }} \ - --resource-group ${{ secrets.AZ_ACA_RESOURCE_GROUP }} \ - --image ${{ secrets.AZ_ACR_URL }}/${{ env.ACR_DOCKER_IMAGE }}:${{ inputs.branch }}-${{ inputs.checked-out-sha }}-${{ inputs.environment }} \ - --output none - &> /dev/null - - run-e2e-testing: - - runs-on: ubuntu-22.04 - name: Clear Database & Run E2E Tests on ${{ inputs.environment }} - if: ${{ inputs.environment == 'tst' || inputs.environment == 'staging' }} - environment: ${{ inputs.environment }} - needs: [set-env, upgrade-database, pull-image-from-gcr-and-publish-to-acr, deploy-image] - env: - az_keyvault_name: ${{ secrets.AZ_ENVIRONMENT }}${{ secrets.DFE_PROJECT_NAME }}-kv - az_keyvault_database_connectionstring_name: ${{ secrets.AZ_KEYVAULT_DATABASE_CONNECTIONSTRING_NAME }} - az_sql_database_server_name: ${{ secrets.AZ_ENVIRONMENT }}${{ secrets.DFE_PROJECT_NAME }} - az_resource_group_name: ${{ secrets.AZ_ENVIRONMENT }}${{ secrets.DFE_PROJECT_NAME }} - SQL_IP_NAME: e2e-tests-clear-db - - steps: + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ github.ref }} + + - name: Azure CLI Login + uses: ./.github/actions/azure-login + with: + az_tenant_id: ${{ secrets.AZ_TENANT_ID }} + az_subscription_id: ${{ secrets.AZ_SUBSCRIPTION_ID }} + az_client_id: ${{ secrets.AZ_CLIENT_ID }} + az_client_secret: ${{ secrets.AZ_CLIENT_SECRET }} + + - name: Build & Run Database Upgrader + uses: ./.github/actions/build-and-run-database-upgrader + with: + dotnet_version: ${{ vars.DOTNET_VERSION }} + az_keyvault_name: ${{ secrets.AZ_ENVIRONMENT }}${{ secrets.DFE_PROJECT_NAME }}-kv + az_keyvault_database_connectionstring_name: ${{ secrets.AZ_KEYVAULT_DATABASE_CONNECTIONSTRING_NAME }} + az_sql_database_server_name: ${{ secrets.AZ_ENVIRONMENT }}${{ secrets.DFE_PROJECT_NAME }} + az_resource_group_name: ${{ secrets.AZ_ENVIRONMENT }}${{ secrets.DFE_PROJECT_NAME }} + environment: ${{ inputs.environment }} + sql_analytics_username: ${{ secrets.ANALYTICS_USERNAME }} + sql_analytics_password: ${{ secrets.ANALYTICS_PASSWORD }} + + pull-image-from-gcr-and-publish-to-acr: + runs-on: ubuntu-22.04 + name: Pull Image From GitHub Container Registry and Publish to Azure Container Registry + environment: ${{ inputs.environment }} + needs: upgrade-database + + steps: + - name: GitHub Container Registry Login + uses: docker/login-action@v3 + with: + registry: ${{ env.GITHUB_CONTAINER_REGISTRY }} + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Pull Image From GCR + run: docker pull ${{ env.GITHUB_CONTAINER_REGISTRY }}/${{ env.ORG_NAME }}/${{ env.GCR_DOCKER_IMAGE }}:${{ inputs.branch }}-${{ inputs.checked-out-sha }} + + - name: Azure Container Registry Login + uses: docker/login-action@v3 + with: + registry: ${{ secrets.AZ_ACR_URL }} + username: ${{ secrets.AZ_CLIENT_ID }} + password: ${{ secrets.AZ_CLIENT_SECRET }} + + - name: Push Image To ACR + run: | + docker tag ${{ env.GITHUB_CONTAINER_REGISTRY }}/${{ env.ORG_NAME }}/${{ env.GCR_DOCKER_IMAGE }}:${{ inputs.branch }}-${{ inputs.checked-out-sha }} ${{ secrets.AZ_ACR_URL }}/${{ env.ACR_DOCKER_IMAGE }}:${{ inputs.branch }}-${{ inputs.checked-out-sha }}-${{ inputs.environment }} + docker push ${{ secrets.AZ_ACR_URL }}/${{ env.ACR_DOCKER_IMAGE }}:${{ inputs.branch }}-${{ inputs.checked-out-sha }}-${{ inputs.environment }} + + deploy-image: + runs-on: ubuntu-22.04 + name: Deploy Image To ${{ inputs.environment }} + environment: ${{ inputs.environment }} + needs: [upgrade-database, pull-image-from-gcr-and-publish-to-acr] + + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ github.ref }} + + - name: Azure CLI Login + uses: ./.github/actions/azure-login + with: + az_tenant_id: ${{ secrets.AZ_TENANT_ID }} + az_subscription_id: ${{ secrets.AZ_SUBSCRIPTION_ID }} + az_client_id: ${{ secrets.AZ_CLIENT_ID }} + az_client_secret: ${{ secrets.AZ_CLIENT_SECRET }} + - name: Update Azure Container Apps Revision + uses: azure/CLI@v1 + id: azure + with: + azcliversion: 2.45.0 + inlineScript: | + az config set extension.use_dynamic_install=yes_without_prompt + az containerapp update \ + --name ${{ secrets.AZ_ACA_NAME }} \ + --resource-group ${{ secrets.AZ_ACA_RESOURCE_GROUP }} \ + --image ${{ secrets.AZ_ACR_URL }}/${{ env.ACR_DOCKER_IMAGE }}:${{ inputs.branch }}-${{ inputs.checked-out-sha }}-${{ inputs.environment }} \ + --output none + &> /dev/null + + run-e2e-testing: + runs-on: ubuntu-22.04 + name: Clear Database & Run E2E Tests on ${{ inputs.environment }} + if: ${{ inputs.environment == 'tst' || inputs.environment == 'staging' }} + environment: ${{ inputs.environment }} + needs: + [upgrade-database, pull-image-from-gcr-and-publish-to-acr, deploy-image] + env: + az_keyvault_name: ${{ secrets.AZ_ENVIRONMENT }}${{ secrets.DFE_PROJECT_NAME }}-kv + az_keyvault_database_connectionstring_name: ${{ secrets.AZ_KEYVAULT_DATABASE_CONNECTIONSTRING_NAME }} + az_sql_database_server_name: ${{ secrets.AZ_ENVIRONMENT }}${{ secrets.DFE_PROJECT_NAME }} + az_resource_group_name: ${{ secrets.AZ_ENVIRONMENT }}${{ secrets.DFE_PROJECT_NAME }} + SQL_IP_NAME: e2e-tests-clear-db + + steps: - name: Checkout Repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Azure CLI Login uses: ./.github/actions/azure-login @@ -197,7 +142,7 @@ jobs: az_subscription_id: ${{ secrets.AZ_SUBSCRIPTION_ID }} az_client_id: ${{ secrets.AZ_CLIENT_ID }} az_client_secret: ${{ secrets.AZ_CLIENT_SECRET }} - + - name: Get Workflow IP Address id: what-is-my-ip uses: ./.github/actions/whats-my-ip-address @@ -232,7 +177,7 @@ jobs: dsi_url: ${{ secrets.DSI_URL }} dsi_username: ${{ secrets.DSI_USERNAME }} dsi_password: ${{ secrets.DSI_PASSWORD }} - + - name: Remove Azure Firewall Rules if: always() uses: ./.github/actions/azure-ip-whitelist @@ -242,4 +187,4 @@ jobs: az_keyvault_name: ${{ env.az_keyvault_name }} az_ip_name: ${{ env.SQL_IP_NAME }} az_resource_group: ${{ env.az_resource_group_name}} - az_sql_database_server_name: ${{ env.az_sql_database_server_name }} \ No newline at end of file + az_sql_database_server_name: ${{ env.az_sql_database_server_name }} diff --git a/.github/workflows/e2e-tests.yml b/.github/workflows/e2e-tests.yml index 7263f7814..be5998bfd 100644 --- a/.github/workflows/e2e-tests.yml +++ b/.github/workflows/e2e-tests.yml @@ -28,7 +28,7 @@ jobs: SQL_IP_NAME: e2e-tests-clear-db steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Login with AZ uses: ./.github/actions/azure-login @@ -88,7 +88,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Azure CLI Login uses: ./.github/actions/azure-login @@ -99,7 +99,7 @@ jobs: az_client_secret: ${{ secrets.AZ_CLIENT_SECRET }} - name: Setup .NET - uses: actions/setup-dotnet@v3 + uses: actions/setup-dotnet@v4 with: dotnet-version: ${{ env.DOTNET_VERSION }} diff --git a/.github/workflows/matrix-deploy-azure-function.yml b/.github/workflows/matrix-deploy-azure-function.yml new file mode 100644 index 000000000..8b21d19db --- /dev/null +++ b/.github/workflows/matrix-deploy-azure-function.yml @@ -0,0 +1,76 @@ +name: Multi-Stage Build & Deploy (Azure Function) + +on: + workflow_dispatch: + push: + branches: ["main", "development"] + paths: + - "src/Dfe.PlanTech.AzureFunctions/**" + - ".github/workflows/matrix-deploy-azure-function.yml" + - ".github/workflows/build-azure-function.yml" + - ".github/workflows/deploy-azure-function.yml" + +jobs: + set-env: + runs-on: ubuntu-22.04 + name: Set Environment (Matrix Deploy Azure Function) + outputs: + branch: ${{ steps.var.outputs.branch }} + artifact: ${{ steps.var.outputs.artifact }} + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ github.ref }} + - id: var + run: | + GIT_BRANCH=${GITHUB_BASE_REF:-${GITHUB_REF#refs/heads/}} + ARTIFACT=Dfe-PlanTech-AzureFunction + echo "branch=$GIT_BRANCH" >> $GITHUB_OUTPUT + echo "artifact=$ARTIFACT" >> $GITHUB_OUTPUT + + build-azure-function: + needs: set-env + name: Build Azure Function + uses: ./.github/workflows/build-azure-function.yml + with: + artifact: ${{ needs.set-env.outputs.artifact }} + + deploy-azure-function-for-dev-test: + needs: [set-env, build-azure-function] + name: Deploy Azure Function + strategy: + fail-fast: true + max-parallel: 2 + matrix: + target: [Dev, Tst] + uses: ./.github/workflows/deploy-azure-function.yml + with: + environment: ${{ matrix.target }} + artifact: ${{ needs.set-env.outputs.artifact }} + secrets: inherit + + deploy-azure-function-for-staging: + needs: [set-env, build-azure-function, deploy-azure-function-for-dev-test] + name: Deploy Azure Function (Staging) + if: ${{ needs.set-env.outputs.branch == 'main' }} + uses: ./.github/workflows/deploy-azure-function.yml + with: + environment: Staging + artifact: ${{ needs.set-env.outputs.artifact }} + secrets: inherit + + deploy-azure-function-for-production: + needs: + [ + set-env, + build-azure-function, + deploy-azure-function-for-dev-test, + deploy-azure-function-for-staging, + ] + name: Deploy Azure Function (Production) + if: ${{ needs.set-env.outputs.branch == 'main' }} + uses: ./.github/workflows/deploy-azure-function.yml + with: + environment: Production + artifact: ${{ needs.set-env.outputs.artifact }} + secrets: inherit diff --git a/.github/workflows/matrix-deploy.yml b/.github/workflows/matrix-deploy.yml index abc92075e..aabc172d1 100644 --- a/.github/workflows/matrix-deploy.yml +++ b/.github/workflows/matrix-deploy.yml @@ -16,7 +16,7 @@ jobs: branch: ${{ steps.var.outputs.branch }} checked-out-sha: ${{ steps.var.outputs.checked-out-sha }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: ref: ${{ github.ref }} @@ -36,17 +36,10 @@ jobs: branch: ${{ needs.set-env.outputs.branch }} checked-out-sha: ${{ needs.set-env.outputs.checked-out-sha }} - build-and-deploy-azure-function-for-dev-test: - needs: set-env - name: Build & Deploy Azure Function - strategy: - fail-fast: true - max-parallel: 1 - matrix: - target: [Dev, Tst] - uses: ./.github/workflows/build-and-deploy-azure-function.yml - with: - environment: ${{ matrix.target }} + create-and-tag-release: + needs: [set-env, create-and-publish-image] + name: Create & Tag Release + uses: ./.github/workflows/create-tag-release.yml secrets: inherit check-for-terraform-changes: @@ -57,7 +50,7 @@ jobs: run_terraform_deploy: ${{ steps.terraform_changes.outputs.run_terraform_deploy }} steps: - name: Checkout Repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: ${{ github.ref }} fetch-depth: 2 @@ -108,16 +101,16 @@ jobs: checked-out-sha: ${{ needs.set-env.outputs.checked-out-sha }} secrets: inherit - build-and-deploy-azure-function-for-staging: + generate-subtopic-visualisations: needs: [set-env, deploy-to-dev-and-test] - name: Build & Deploy Azure Function + name: Run the visualisation workflow again staging content. if: ${{ needs.set-env.outputs.branch == 'main' }} strategy: - fail-fast: true max-parallel: 1 + fail-fast: true matrix: target: [Staging] - uses: ./.github/workflows/build-and-deploy-azure-function.yml + uses: ./.github/workflows/qa-viz.yml with: environment: ${{ matrix.target }} secrets: inherit @@ -152,20 +145,6 @@ jobs: checked-out-sha: ${{ needs.set-env.outputs.checked-out-sha }} secrets: inherit - build-and-deploy-azure-function-for-production: - needs: [set-env, deploy-to-dev-and-test, deploy-to-staging] - name: Build & Deploy Azure Function - if: ${{ needs.set-env.outputs.branch == 'main' }} - strategy: - fail-fast: true - max-parallel: 1 - matrix: - target: [Production] - uses: ./.github/workflows/build-and-deploy-azure-function.yml - with: - environment: ${{ matrix.target }} - secrets: inherit - plan-terraform-for-production: needs: [ diff --git a/.github/workflows/qa-viz.yml b/.github/workflows/qa-viz.yml new file mode 100644 index 000000000..5e6b039f5 --- /dev/null +++ b/.github/workflows/qa-viz.yml @@ -0,0 +1,104 @@ +name: QA Visualisation Workflow + + +on: + workflow_dispatch: + inputs: + environment: + description: Environment to run the visualisation for + required: true + options: ['Dev', 'Tst', 'Staging'] + workflow_call: + inputs: + environment: + type: string + required: true + +jobs: + generate_images: + runs-on: ubuntu-latest + env: + az_keyvault_name: ${{ secrets.AZ_ENVIRONMENT }}${{ secrets.DFE_PROJECT_NAME }}-kv + az_resource_group_name: ${{ secrets.AZ_ENVIRONMENT }}${{ secrets.DFE_PROJECT_NAME }} + az_sql_database_server_name: ${{ secrets.AZ_ENVIRONMENT }}${{ secrets.DFE_PROJECT_NAME }} + SQL_IP_NAME: qa-viz + environment: ${{ inputs.environment || 'Staging' }} + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + + - name: Login with AZ + uses: ./.github/actions/azure-login + with: + az_tenant_id: ${{ secrets.AZ_TENANT_ID }} + az_subscription_id: ${{ secrets.AZ_SUBSCRIPTION_ID }} + az_client_id: ${{ secrets.AZ_CLIENT_ID }} + az_client_secret: ${{ secrets.AZ_CLIENT_SECRET }} + + - name: Get workflow IP address + id: whats-my-ip + uses: ./.github/actions/whats-my-ip-address + + - name: Add Azure firewall rules + uses: ./.github/actions/azure-ip-whitelist + with: + ip_address: ${{ steps.whats-my-ip.outputs.ip }} + verb: "add" + az_keyvault_name: ${{ env.az_keyvault_name }} + az_ip_name: ${{ env.SQL_IP_NAME }} + az_resource_group: ${{ env.az_resource_group_name}} + az_sql_database_server_name: ${{ env.az_sql_database_server_name }} + + - name: Install Graphviz + run: sudo apt-get install graphviz -y + + - name: Install Microsoft ODBC + run: sudo ACCEPT_EULA=Y apt-get install msodbcsql17 -y + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: 3.9 + + - name: Install pyodbc + run: pip install pyodbc + + - name: Install graphviz + run: pip install graphviz + + - name: Install azure identity + run: pip install azure-identity + + - name: Run data script + run: python ./.github/scripts/qa-data.py + env: + SQL_CONNECTION_STRING: "Driver={ODBC Driver 17 for SQL Server};Server=tcp:${{ env.az_sql_database_server_name }}.database.windows.net,1433;Database=${{ env.az_sql_database_server_name }}-sqldb;Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30" + + - name: List data files + run: ls -l ./data + + - name: Remove Azure firewall rules + if: always() + uses: ./.github/actions/azure-ip-whitelist + with: + ip_address: ${{ steps.whats-my-ip.outputs.ip }} + verb: "remove" + az_keyvault_name: ${{ env.az_keyvault_name }} + az_ip_name: ${{ env.SQL_IP_NAME }} + az_resource_group: ${{ env.az_resource_group_name}} + az_sql_database_server_name: ${{ env.az_sql_database_server_name }} + + - name: Run Visaulisation Script + run: python ./.github/scripts/qa-visualisations.py + + - name: Upload image + id: artifact-upload-step + uses: actions/upload-artifact@v4 + with: + name: qa-visualisations + path: ./visualisations + + - name: Call Teams Webhook + run: | + curl -X POST -H 'Content-Type: application/json' -d '{"text": "New Visualisations Available for ${{ inputs.environment }} : https://github.com/DFE-Digital/plan-technology-for-your-school/actions/runs/${{ github.run_id }}/artifacts/${{ steps.artifact-upload-step.outputs.artifact-id }}"}' ${{ secrets.PLANTECH_TEAMS_WEBHOOK }} + diff --git a/.github/workflows/terraform-deploy.yml b/.github/workflows/terraform-deploy.yml index a7f8ca6cd..fb8d6fa02 100644 --- a/.github/workflows/terraform-deploy.yml +++ b/.github/workflows/terraform-deploy.yml @@ -5,14 +5,14 @@ on: inputs: environment: type: string - description: 'The environment to deploy to:' + description: "The environment to deploy to:" required: true workflow_call: inputs: environment: type: string required: true - + env: DOTNET_VERSION: ${{ vars.DOTNET_VERSION }} @@ -22,7 +22,7 @@ env: ARM_CLIENT_SECRET: ${{ secrets.AZ_CLIENT_SECRET }} AZ_KEYVAULT_NAME: ${{ secrets.AZ_ACA_RESOURCE_GROUP }}-kv - + TF_BACKEND_STORAGE_ACCOUNT_NAME: ${{ secrets.TF_BACKEND_STORAGE_ACCOUNT_NAME }} TF_BACKEND_CONTAINER_NAME: ${{ secrets.TF_BACKEND_CONTAINER_NAME }} TF_BACKEND_KEY: ${{ secrets.TF_BACKEND_KEY }} @@ -47,19 +47,19 @@ env: TF_WORKING_DIRECTORY: terraform/container-app jobs: - deploy-terraform: - name: Deploy Terraform + deploy-terraform: + name: Deploy Terraform runs-on: ubuntu-22.04 defaults: run: working-directory: ${{env.TF_WORKING_DIRECTORY}} - environment: ${{ github.event.inputs.environment }} + environment: ${{ github.event.inputs.environment }} steps: - name: Clone repo - uses: actions/checkout@v3 - + uses: actions/checkout@v4 + - name: Setup Terraform - uses: hashicorp/setup-terraform@v2 + uses: hashicorp/setup-terraform@v3 with: terraform_version: 1.6.2 @@ -95,15 +95,15 @@ jobs: -backend-config="storage_account_name=${{ env.TF_BACKEND_STORAGE_ACCOUNT_NAME }}" \ -backend-config="container_name=${{ env.TF_BACKEND_CONTAINER_NAME }}" \ -backend-config="key=${{ env.TF_BACKEND_KEY }}" - + - name: Apply Terraform changes id: apply run: terraform apply -auto-approve - + - name: Remove Runner to KV whitelist uses: azure/CLI@v1 if: always() with: azcliversion: 2.45.0 inlineScript: | - az keyvault network-rule remove --name ${{ env.AZ_KEYVAULT_NAME }} --ip-address ${{ steps.whats-my-ip.outputs.ip }} &> /dev/null \ No newline at end of file + az keyvault network-rule remove --name ${{ env.AZ_KEYVAULT_NAME }} --ip-address ${{ steps.whats-my-ip.outputs.ip }} &> /dev/null diff --git a/.github/workflows/terraform-dns.yml b/.github/workflows/terraform-dns.yml index 37dc9895a..88de7413e 100644 --- a/.github/workflows/terraform-dns.yml +++ b/.github/workflows/terraform-dns.yml @@ -5,22 +5,22 @@ on: inputs: environment: type: string - description: 'The environment to run terraform plan against:' + description: "The environment to run terraform plan against:" required: true workflow_call: inputs: environment: type: string required: true - -env: + +env: ARM_TENANT_ID: ${{ secrets.AZ_TENANT_ID }} ARM_SUBSCRIPTION_ID: ${{ secrets.AZ_SUBSCRIPTION_ID }} ARM_CLIENT_ID: ${{ secrets.AZ_CLIENT_ID }} ARM_CLIENT_SECRET: ${{ secrets.AZ_CLIENT_SECRET }} AZ_KEYVAULT_NAME: ${{ secrets.AZ_ACA_RESOURCE_GROUP }}-kv - + TF_BACKEND_STORAGE_ACCOUNT_NAME: ${{ secrets.TF_BACKEND_STORAGE_ACCOUNT_NAME }} TF_BACKEND_CONTAINER_NAME: ${{ secrets.TF_BACKEND_CONTAINER_NAME }} TF_BACKEND_KEY: "terraform-dns.tfstate" @@ -30,7 +30,7 @@ env: TF_VAR_environment: ${{ secrets.AZ_ENVIRONMENT }} TF_VAR_azure_location: ${{ vars.AZ_LOCATION }} TF_VAR_primary_fqdn: "plan-technology-for-your-school.education.gov.uk" - TF_VAR_subdomains: ["staging"] + TF_VAR_subdomains: "staging" TF_WORKING_DIRECTORY: terraform/dns-zone @@ -44,10 +44,10 @@ jobs: environment: ${{ inputs.environment }} steps: - name: Clone repo - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup Terraform - uses: hashicorp/setup-terraform@v2 + uses: hashicorp/setup-terraform@v3 with: terraform_version: 1.6.2 @@ -94,4 +94,4 @@ jobs: with: azcliversion: 2.45.0 inlineScript: | - az keyvault network-rule remove --name ${{ env.AZ_KEYVAULT_NAME }} --ip-address ${{ steps.whats-my-ip.outputs.ip }} &> /dev/null \ No newline at end of file + az keyvault network-rule remove --name ${{ env.AZ_KEYVAULT_NAME }} --ip-address ${{ steps.whats-my-ip.outputs.ip }} &> /dev/null diff --git a/.github/workflows/terraform-plan.yml b/.github/workflows/terraform-plan.yml index b52fbc3fa..72f7ad627 100644 --- a/.github/workflows/terraform-plan.yml +++ b/.github/workflows/terraform-plan.yml @@ -5,14 +5,14 @@ on: inputs: environment: type: string - description: 'The environment to run terraform plan against:' + description: "The environment to run terraform plan against:" required: true workflow_call: inputs: environment: type: string required: true - + env: DOTNET_VERSION: ${{ vars.DOTNET_VERSION }} @@ -22,7 +22,7 @@ env: ARM_CLIENT_SECRET: ${{ secrets.AZ_CLIENT_SECRET }} AZ_KEYVAULT_NAME: ${{ secrets.AZ_ACA_RESOURCE_GROUP }}-kv - + TF_BACKEND_STORAGE_ACCOUNT_NAME: ${{ secrets.TF_BACKEND_STORAGE_ACCOUNT_NAME }} TF_BACKEND_CONTAINER_NAME: ${{ secrets.TF_BACKEND_CONTAINER_NAME }} TF_BACKEND_KEY: ${{ secrets.TF_BACKEND_KEY }} @@ -56,10 +56,10 @@ jobs: environment: ${{ inputs.environment }} steps: - name: Clone repo - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup Terraform - uses: hashicorp/setup-terraform@v2 + uses: hashicorp/setup-terraform@v3 with: terraform_version: 1.6.2 @@ -106,4 +106,4 @@ jobs: with: azcliversion: 2.45.0 inlineScript: | - az keyvault network-rule remove --name ${{ env.AZ_KEYVAULT_NAME }} --ip-address ${{ steps.whats-my-ip.outputs.ip }} &> /dev/null \ No newline at end of file + az keyvault network-rule remove --name ${{ env.AZ_KEYVAULT_NAME }} --ip-address ${{ steps.whats-my-ip.outputs.ip }} &> /dev/null diff --git a/.github/workflows/terraform-pr-check.yml b/.github/workflows/terraform-pr-check.yml index e6698e88f..e56254a2c 100644 --- a/.github/workflows/terraform-pr-check.yml +++ b/.github/workflows/terraform-pr-check.yml @@ -2,18 +2,18 @@ name: Terraform PR Check on: pull_request: - paths: - - 'terraform/**' - - '.github/workflows/terraform-pr-check.yml' + paths: + - "terraform/**" + - ".github/workflows/terraform-pr-check.yml" push: - branches: [ "main" ] - paths: - - 'terraform/**' - + branches: ["main"] + paths: + - "terraform/**" + concurrency: - group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}' + group: "${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}" cancel-in-progress: true - + env: DOTNET_VERSION: ${{ vars.DOTNET_VERSION }} @@ -23,7 +23,7 @@ env: ARM_CLIENT_SECRET: ${{ secrets.AZ_CLIENT_SECRET }} AZ_KEYVAULT_NAME: ${{ secrets.AZ_ACA_RESOURCE_GROUP }}-kv - + TF_BACKEND_STORAGE_ACCOUNT_NAME: ${{ secrets.TF_BACKEND_STORAGE_ACCOUNT_NAME }} TF_BACKEND_CONTAINER_NAME: ${{ secrets.TF_BACKEND_CONTAINER_NAME }} TF_BACKEND_KEY: ${{ secrets.TF_BACKEND_KEY }} @@ -39,28 +39,28 @@ env: TF_VAR_az_sql_azuread_admin_username: ${{ secrets.AZ_SERVICE_PRINCIPAL }} TF_VAR_az_sql_admin_password: ${{secrets.AZ_SQL_ADMIN_PASSWORD}} TF_VAR_az_sql_azuread_admin_objectid: ${{ secrets.AZ_CLIENT_ID }} - TF_VAR_registry_server: "ghcr.io" - TF_VAR_registry_username: ${{ github.repository_owner }} + TF_VAR_registry_server: "ghcr.io" + TF_VAR_registry_username: ${{ github.repository_owner }} TF_VAR_registry_custom_image_url: "ghcr.io/dfe-digital/plan-technology-for-your-school:latest" TF_VAR_registry_password: ${{ secrets.GITHUB_TOKEN }} TF_WORKING_DIRECTORY: terraform/container-app jobs: - validate-terraform: - name: Validate Terraform + validate-terraform: + name: Validate Terraform runs-on: ubuntu-22.04 defaults: run: working-directory: ${{env.TF_WORKING_DIRECTORY}} steps: - name: Clone repo - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: ${{ github.event.pull_request.head.ref }} - + - name: Setup Terraform - uses: hashicorp/setup-terraform@v2 + uses: hashicorp/setup-terraform@v3 with: terraform_version: 1.6.2 @@ -87,7 +87,7 @@ jobs: azcliversion: 2.45.0 inlineScript: | az keyvault network-rule add --name ${{ env.AZ_KEYVAULT_NAME }} --ip-address ${{ steps.whats-my-ip.outputs.ip }} &> /dev/null - + - name: Terraform init id: init run: | @@ -101,14 +101,14 @@ jobs: id: validate run: terraform validate -no-color -compact-warnings - - name: Terraform plan + - name: Terraform plan id: plan run: terraform plan -no-color - name: Terraform fmt id: fmt run: terraform fmt -check -diff - + - name: Validate Terraform docs uses: terraform-docs/gh-actions@v1.0.0 with: @@ -118,7 +118,7 @@ jobs: output-method: inject git-push: "true" - - name: Update PR with Terraform results + - name: Update PR with Terraform results uses: ./.github/actions/post-terraform-results if: github.event_name == 'pull_request' with: @@ -133,7 +133,7 @@ jobs: github_event_name: ${{ github.event_name }} tf_working_directory: ${{ env.TF_WORKING_DIRECTORY }} github_workflow: ${{ github.workflow }} - + - name: Remove Runner to KV whitelist uses: azure/CLI@v1 if: always() @@ -141,7 +141,7 @@ jobs: azcliversion: 2.45.0 inlineScript: | az keyvault network-rule remove --name ${{ env.AZ_KEYVAULT_NAME }} --ip-address ${{ steps.whats-my-ip.outputs.ip }} &> /dev/null - + terraform-lint: name: Terraform Lint runs-on: ubuntu-22.04 @@ -150,10 +150,10 @@ jobs: working-directory: ${{ env.TF_WORKING_DIRECTORY }} steps: - name: Clone repo - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup TFLint - uses: terraform-linters/setup-tflint@v3 + uses: terraform-linters/setup-tflint@v4 with: tflint_version: v0.44.1 @@ -165,9 +165,9 @@ jobs: runs-on: ubuntu-22.04 steps: - name: Clone repo - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: tfsec uses: aquasecurity/tfsec-pr-commenter-action@v1.2.0 with: - github_token: ${{ github.token }} \ No newline at end of file + github_token: ${{ github.token }} diff --git a/.github/workflows/validate-scripts.yml b/.github/workflows/validate-scripts.yml index 0a7fef0b7..36d288c0e 100644 --- a/.github/workflows/validate-scripts.yml +++ b/.github/workflows/validate-scripts.yml @@ -1,86 +1,81 @@ name: Validate SQL Scripts on: - workflow_dispatch: - push: - branches: ["main", "development"] - paths: - - 'src/Dfe.PlanTech.DatabaseUpgrader/**' - - '.github/scripts/**' - - '.github/workflows/validate-scripts.yml' - pull_request: - branches: ["main", "development"] - paths: - - 'src/Dfe.PlanTech.DatabaseUpgrader/**' - - '.github/scripts/**' - - '.github/workflows/validate-scripts.yml' + workflow_dispatch: + push: + branches: ["main", "development"] + paths: + - "src/Dfe.PlanTech.DatabaseUpgrader/**" + - ".github/scripts/**" + - ".github/workflows/validate-scripts.yml" + pull_request: + branches: ["main", "development"] + paths: + - "src/Dfe.PlanTech.DatabaseUpgrader/**" + - ".github/scripts/**" + - ".github/workflows/validate-scripts.yml" concurrency: - group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}' - cancel-in-progress: true + group: "${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}" + cancel-in-progress: true jobs: - - validate-sql-scripts: - - name: Validate SQL Scripts - runs-on: ubuntu-22.04 - env: - FAKE_USERNAME: "sa" # NB. This is OK to be plaintext as it's a made-up credential to give the locally hosted DB a "user" - FAKE_PASSWORD: "LWgqx62jIO2sRek8" # NB. See Above - - steps: - - - name: Checkout Repository - uses: actions/checkout@v3 - - - name: Build Database Upgrader - uses: ./.github/actions/build-dotnet-app - with: - dotnet_version: ${{ vars.DOTNET_VERSION }} - solution_filename: Dfe.PlanTech.DatabaseUpgrader.sln - - - name: Get DB Connection String - id: connection-string - run: | - CONNECTION_STRING="Server=tcp:localhost,1433;Initial Catalog=master;Persist Security Info=False;User ID=${{ env.FAKE_USERNAME }};Password=${{ env.FAKE_PASSWORD }};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=True;Connection Timeout=30;" - echo "CONNECTION_STRING=$CONNECTION_STRING" >> $GITHUB_OUTPUT - - - name: Pull Azure SQL Edge Docker Image - shell: bash - run: docker pull mcr.microsoft.com/azure-sql-edge:latest - - - name: Start Azure SQL Edge Instance - shell: bash - run: docker run --cap-add SYS_PTRACE -e 'ACCEPT_EULA=1' -e 'MSSQL_SA_PASSWORD=${{ env.FAKE_PASSWORD }}' -p 1433:1433 --name azuresqledge -d mcr.microsoft.com/azure-sql-edge - - - name: Wait for Docker Image to Startup - shell: bash - run: sleep 16s - - - name: Run Database Upgrader - shell: bash - run: dotnet ./build/Dfe.PlanTech.DatabaseUpgrader.dll -c "${{ steps.connection-string.outputs.CONNECTION_STRING }}" - - quality-check: - - name: Run SQL Code Quality Check - runs-on: ubuntu-22.04 - if: ${{ github.event_name == 'pull_request' }} - - steps: - - - name: Checkout Repository - uses: actions/checkout@v3 - - - name: Run SQLCheck - uses: yokawasa/action-sqlcheck@v1.5.0 - with: - post-comment: true - token: ${{ secrets.GITHUB_TOKEN }} - postfixes: | - sql - directories: | - ./src/Dfe.PlanTech.DatabaseUpgrader/Scripts - ./src/Dfe.PlanTech.DatabaseUpgrader/EnvironmentSpecificScripts - ./.github/scripts \ No newline at end of file + validate-sql-scripts: + name: Validate SQL Scripts + runs-on: ubuntu-22.04 + env: + FAKE_USERNAME: "sa" # NB. This is OK to be plaintext as it's a made-up credential to give the locally hosted DB a "user" + FAKE_PASSWORD: "LWgqx62jIO2sRek8" # NB. See Above + + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + + - name: Build Database Upgrader + uses: ./.github/actions/build-dotnet-app + with: + dotnet_version: ${{ vars.DOTNET_VERSION }} + solution_filename: Dfe.PlanTech.DatabaseUpgrader.sln + + - name: Get DB Connection String + id: connection-string + run: | + CONNECTION_STRING="Server=tcp:localhost,1433;Initial Catalog=master;Persist Security Info=False;User ID=${{ env.FAKE_USERNAME }};Password=${{ env.FAKE_PASSWORD }};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=True;Connection Timeout=30;" + echo "CONNECTION_STRING=$CONNECTION_STRING" >> $GITHUB_OUTPUT + + - name: Pull Azure SQL Edge Docker Image + shell: bash + run: docker pull mcr.microsoft.com/azure-sql-edge:latest + + - name: Start Azure SQL Edge Instance + shell: bash + run: docker run --cap-add SYS_PTRACE -e 'ACCEPT_EULA=1' -e 'MSSQL_SA_PASSWORD=${{ env.FAKE_PASSWORD }}' -p 1433:1433 --name azuresqledge -d mcr.microsoft.com/azure-sql-edge + + - name: Wait for Docker Image to Startup + shell: bash + run: sleep 16s + + - name: Run Database Upgrader + shell: bash + run: dotnet ./build/Dfe.PlanTech.DatabaseUpgrader.dll -c "${{ steps.connection-string.outputs.CONNECTION_STRING }}" + + quality-check: + name: Run SQL Code Quality Check + runs-on: ubuntu-22.04 + if: ${{ github.event_name == 'pull_request' }} + + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + + - name: Run SQLCheck + uses: yokawasa/action-sqlcheck@v1.5.0 + with: + post-comment: true + token: ${{ secrets.GITHUB_TOKEN }} + postfixes: | + sql + directories: | + ./src/Dfe.PlanTech.DatabaseUpgrader/Scripts + ./src/Dfe.PlanTech.DatabaseUpgrader/EnvironmentSpecificScripts + ./.github/scripts diff --git a/.releaserc.json b/.releaserc.json new file mode 100644 index 000000000..ebcaff0d5 --- /dev/null +++ b/.releaserc.json @@ -0,0 +1,16 @@ +{ + "plugins": [ + "@semantic-release/commit-analyzer", + "@semantic-release/release-notes-generator", + [ + "@semantic-release/github", + { + "successComment": false + } + ] + ], + "branches": [ + { "name": "main" }, + { "name": "development", "prerelease": true } + ] +} diff --git a/contentful/export-processor/.gitignore b/contentful/export-processor/.gitignore new file mode 100644 index 000000000..d76903322 --- /dev/null +++ b/contentful/export-processor/.gitignore @@ -0,0 +1,2 @@ +output/*.json +*.json \ No newline at end of file diff --git a/contentful/export-processor/README.md b/contentful/export-processor/README.md new file mode 100644 index 000000000..d494a8d98 --- /dev/null +++ b/contentful/export-processor/README.md @@ -0,0 +1,5 @@ +# Contentful Export Processing + +Classes/functions/etc to process exported Contentful entries for various purposes. + +[Test Suite Generator](./user-journey/README.md) diff --git a/contentful/user-journey-info-scripts/answer.mjs b/contentful/export-processor/content-types/answer.js similarity index 100% rename from contentful/user-journey-info-scripts/answer.mjs rename to contentful/export-processor/content-types/answer.js diff --git a/contentful/export-processor/content-types/content-type.js b/contentful/export-processor/content-types/content-type.js new file mode 100644 index 000000000..04b44b4bd --- /dev/null +++ b/contentful/export-processor/content-types/content-type.js @@ -0,0 +1,36 @@ +class ContentType { + id; + fields; + + constructor({ sys, fields }) { + this.id = sys.id; + this.fields = {}; + + for (const field of fields) { + this.fields[field.id] = field; + } + } + + getReferencedTypesForField(field) { + const matching = this.fields[field]; + + if (!matching) throw `Couldn't find ${field} in ${this.fields}`; + + if (matching.type !== "Array" && matching.type !== "Link") return; + + const validations = + matching.type == "Array" + ? matching.items.validations + : matching.validations; + + if (!validations) return false; + + const linkContentType = validations + .filter((validation) => validation.linkContentType) + .map((validation) => validation.linkContentType)[0]; + + return linkContentType.length == 0 ? undefined : linkContentType; + } +} + +export default ContentType; diff --git a/contentful/export-processor/content-types/content-types.js b/contentful/export-processor/content-types/content-types.js new file mode 100644 index 000000000..63aa67cf8 --- /dev/null +++ b/contentful/export-processor/content-types/content-types.js @@ -0,0 +1,11 @@ +import { Answer } from "./answer"; +import ContentType from "./content-type"; +import { Question } from "./question"; +import { Recommendation } from "./recommendation"; +import { Section } from "./section"; + +const exportObj = { + ContentTypes: [Answer, ContentType, Question, Recommendation, Section], +}; + +export default exportObj; diff --git a/contentful/user-journey-info-scripts/question.mjs b/contentful/export-processor/content-types/question.js similarity index 74% rename from contentful/user-journey-info-scripts/question.mjs rename to contentful/export-processor/content-types/question.js index 5ae097642..49ed6437f 100644 --- a/contentful/user-journey-info-scripts/question.mjs +++ b/contentful/export-processor/content-types/question.js @@ -1,14 +1,16 @@ -import { Answer } from "./answer.mjs"; +import { Answer } from "./answer.js"; export class Question { answers; text; + helpText; slug; id; constructor({ fields, sys }) { this.answers = fields.answers.map((answer) => new Answer(answer)); this.text = fields.text; + this.helpText = fields.helpText; this.slug = fields.slug; this.id = sys.id; } diff --git a/contentful/user-journey-info-scripts/recommendation.mjs b/contentful/export-processor/content-types/recommendation.js similarity index 78% rename from contentful/user-journey-info-scripts/recommendation.mjs rename to contentful/export-processor/content-types/recommendation.js index e0d2c200a..366d40b40 100644 --- a/contentful/user-journey-info-scripts/recommendation.mjs +++ b/contentful/export-processor/content-types/recommendation.js @@ -11,6 +11,11 @@ export class Recommendation { this.displayName = fields.displayName; this.id = sys.id; this.page = fields.page; + + if (!fields.page?.fields?.slug) { + console.error(this); + return; + } this.slug = fields.page?.fields.slug; } } diff --git a/contentful/user-journey-info-scripts/section.mjs b/contentful/export-processor/content-types/section.js similarity index 97% rename from contentful/user-journey-info-scripts/section.mjs rename to contentful/export-processor/content-types/section.js index 5e78eeb4e..b813d66e1 100644 --- a/contentful/user-journey-info-scripts/section.mjs +++ b/contentful/export-processor/content-types/section.js @@ -1,12 +1,13 @@ -import fs from "fs"; -import { Recommendation } from "./recommendation.mjs"; -import { Question } from "./question.mjs"; -import { UserJourney } from "./user-journey.mjs"; +import { Recommendation } from "./recommendation"; +import { Question } from "./question"; +import { UserJourney } from "../user-journey/user-journey"; export class Section { recommendations; questions; name; + interstitialPage; + id; paths; @@ -18,6 +19,7 @@ export class Section { (recommendation) => new Recommendation(recommendation) ); + this.interstitialPage = fields.interstitialPage; this.questions = fields.questions.map((question) => new Question(question)); this.id = sys.id; this.name = fields.name; diff --git a/contentful/user-journey-info-scripts/data-mapper.mjs b/contentful/export-processor/data-mapper.js similarity index 57% rename from contentful/user-journey-info-scripts/data-mapper.mjs rename to contentful/export-processor/data-mapper.js index df2ab42f7..59a5a5a47 100644 --- a/contentful/user-journey-info-scripts/data-mapper.mjs +++ b/contentful/export-processor/data-mapper.js @@ -1,54 +1,58 @@ -import { Section } from "./section.mjs"; -import fs from "fs"; +import { Section } from "./content-types/section"; +import ContentType from "./content-types/content-type"; /** * DataMapper class for mapping and combining data from a file */ export default class DataMapper { // Maps for different content types - answers = new Map(); - pages = new Map(); - questions = new Map(); - recommendations = new Map(); - sections = new Map(); - - // Map of content type to corresponding Map - contentTypeMappings = { - answer: this.answers, - page: this.pages, - question: this.questions, - recommendationPage: this.recommendations, - section: this.sections, - }; + contents = new Map(); + contentTypes = new Map(); + + _alreadyMappedSections; /** * Get the mapped sections * @returns {IterableIterator
} Iterator for mapped sections */ get mappedSections() { - return this.sectionsToClasses(this.sections); + if (!this._alreadyMappedSections) + this._alreadyMappedSections = Array.from( + this.sectionsToClasses(this.contents["section"]) + ); + + return this._alreadyMappedSections; + } + + get pages() { + return this.contents["page"]; } /** * Constructor for DataMapper * @param {string} filePath - Path to the file to map data from */ - constructor(filePath) { - this.mapData(filePath); + constructor({ entries, contentTypes }) { + this.mapData(entries, contentTypes); } /** * Map data from the provided file * @param {string} filePath - Path to the file to map data from */ - mapData(filePath) { - const fileContents = fs.readFileSync(filePath, "utf-8"); - const jsonObject = JSON.parse(fileContents); - - this.mapEntries(jsonObject.entries); + mapData(entries, contentTypes) { + this.mapContentTypes(contentTypes); + this.mapEntries(entries); this.combineEntries(); } + mapContentTypes(contentTypes) { + for (const contentType of contentTypes) { + const mapped = new ContentType(contentType); + this.contentTypes.set(mapped.id, mapped); + } + } + /** * Map entries from the provided data * @param {Array} entries - Array of entries to map @@ -68,15 +72,26 @@ export default class DataMapper { const contentType = entry.sys.contentType.sys.id; // Get the set for the content type - const setForContentType = this.contentTypeMappings[contentType]; - if (!setForContentType) return; - + const setForContentType = this.getContentTypeSet(contentType); // Add the entry to the set const id = entry.sys.id; + this.stripLocalisationFromAllFields(entry); + setForContentType.set(id, entry); } + getContentTypeSet(contentType) { + let setForContentType = this.contents[contentType]; + + if (!setForContentType) { + setForContentType = new Map(); + this.contents[contentType] = setForContentType; + } + + return setForContentType; + } + /** * Strip localisation from all fields of an entry * @param {object} entry - Entry to strip localisation from @@ -95,6 +110,10 @@ export default class DataMapper { * @returns {IterableIterator
} Iterator for mapped sections */ *sectionsToClasses(sections) { + if (!sections || sections.length == 0) { + return; + } + for (const [id, section] of sections) { yield new Section(section); } @@ -140,30 +159,61 @@ export default class DataMapper { * Combine entries for all tracked content types (i.e. answers, pages, questions, recommendations, sections) */ combineEntries() { - for (const [id, recommendation] of this.recommendations) { - recommendation.fields.page = this.pages.get( - recommendation.fields.page.sys.id - ); + for (const [contentTypeId, contents] of Object.entries(this.contents)) { + const contentType = this.contentTypes.get(contentTypeId); + + for (const [id, entry] of contents) { + this.mapRelationshipsForEntry(entry, contentType); + } } + } - for (const [id, question] of this.questions) { - question.fields.answers = this.copyRelationships( - question.fields.answers, - this.answers - ); + mapRelationshipsForEntry(entry, contentType) { + Object.entries(entry.fields).forEach(([key, value]) => { + const referencedTypesForField = + contentType.getReferencedTypesForField(key); + + if (!referencedTypesForField) return; + + if (Array.isArray(value)) { + entry.fields[key] = value.map((item) => + this.getMatchingContentForReference(referencedTypesForField, item) + ); + } else { + entry.fields[key] = this.getMatchingContentForReference( + referencedTypesForField, + value + ); + } + }); + } + + getContentForFieldId(referencedTypesForField, id) { + const matchingItem = referencedTypesForField + .map((type) => { + const matchingContents = this.contents[type]; + const matchingContent = matchingContents.get(id); + + return matchingContent; + }) + .find((matching) => matching != null); + + if (!matchingItem) { + console.error(`Error finding ${id} for ${referencedTypesForField}`); } - for (const [id, section] of this.sections) { - section.fields.questions = this.copyRelationships( - section.fields.questions, - this.questions - ); + return matchingItem; + } - section.fields.recommendations = this.copyRelationships( - section.fields.recommendations, - this.recommendations - ); + getMatchingContentForReference(referencedTypesForField, reference) { + const referenceId = reference["sys"]?.["id"]; + + if (!referenceId) { + console.log("no reference", reference); + return; } + + return this.getContentForFieldId(referencedTypesForField, referenceId); } /** diff --git a/contentful/export-processor/index.js b/contentful/export-processor/index.js new file mode 100644 index 000000000..240cfa02b --- /dev/null +++ b/contentful/export-processor/index.js @@ -0,0 +1,6 @@ +import DataMapper from "./data-mapper"; +import ContentTypes from "./content-types/content-types"; + +const exportObj = { DataMapper, ...ContentTypes }; + +export default exportObj; diff --git a/contentful/user-journey-info-scripts/README.md b/contentful/export-processor/user-journey/README.md similarity index 100% rename from contentful/user-journey-info-scripts/README.md rename to contentful/export-processor/user-journey/README.md diff --git a/contentful/user-journey-info-scripts/question-answer.mjs b/contentful/export-processor/user-journey/question-answer.js similarity index 100% rename from contentful/user-journey-info-scripts/question-answer.mjs rename to contentful/export-processor/user-journey/question-answer.js diff --git a/contentful/user-journey-info-scripts/test-suit-generator.mjs b/contentful/export-processor/user-journey/test-suite-generator.js similarity index 81% rename from contentful/user-journey-info-scripts/test-suit-generator.mjs rename to contentful/export-processor/user-journey/test-suite-generator.js index a9297e2c1..69aca4734 100644 --- a/contentful/user-journey-info-scripts/test-suit-generator.mjs +++ b/contentful/export-processor/user-journey/test-suite-generator.js @@ -1,9 +1,12 @@ import fs from "fs"; -import DataMapper from "./data-mapper.mjs"; +import DataMapper from "../data-mapper"; +import fs from "fs"; const { file, writeAllPossiblePaths } = getArguments(); -const dataMapper = new DataMapper(file); +const contentfulData = fs.readFileSync(file, "utf8"); +const parsed = JSON.parse(contentfulData); +const dataMapper = new DataMapper(parsed); for (const section of dataMapper.mappedSections) { const output = dataMapper.convertToMinimalSectionInfo( diff --git a/contentful/user-journey-info-scripts/user-journey.mjs b/contentful/export-processor/user-journey/user-journey.js similarity index 100% rename from contentful/user-journey-info-scripts/user-journey.mjs rename to contentful/export-processor/user-journey/user-journey.js diff --git a/contentful/user-journey-info-scripts/.gitignore b/contentful/user-journey-info-scripts/.gitignore deleted file mode 100644 index 24cb060d9..000000000 --- a/contentful/user-journey-info-scripts/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -*.json -output/*.json \ No newline at end of file diff --git a/contentful/user-journey-info-scripts/functions.mjs b/contentful/user-journey-info-scripts/functions.mjs deleted file mode 100644 index e69de29bb..000000000 diff --git a/docs/GitHub-Workflows.md b/docs/GitHub-Workflows.md index 2e3d9b279..0e41750c3 100644 --- a/docs/GitHub-Workflows.md +++ b/docs/GitHub-Workflows.md @@ -1,5 +1,9 @@ # GitHub Workflows +- [PR Checks](#pr-checks) +- [Deployment pipelines](#deployment-pipelines) +- [Other workflows](#other-workflows) + ## PR Checks The following GitHub workflows are used during the PR process to validate the changes being merged into the `main` branch @@ -10,6 +14,17 @@ The following GitHub workflows are used during the PR process to validate the ch | terraform-pr-check | Validates the Terraform configuration | | e2e-tests | Runs E2E tests (using Cypress) | +### code-pr-check workflow + +* Builds the main solution file (`plan-technology-for-your-school.sln`), and runs all its unit tests +* Builds the database upgrader project +* Builds and runs the unit tests for the `Dfe.PlanTech.Web.Node` project + +### e2e-tests workflow + +* Clears out all submissions for a particular testing establishment reference, so that all tests are fresh +* Runs end-to-end tests using Cypress + ### terraform-pr-check workflow This workflow validates the following: @@ -22,32 +37,55 @@ This workflow validates the following: And will update the PR with the Plan results so reviews can easily see what changes will be applied to the infrastructure. -### code-pr-check workflow +## Deployment pipelines -* Builds the main solution file (`plan-technology-for-your-school.sln`), and runs all its unit tests -* Builds the database upgrader project -* Builds and runs the unit tests for the `Dfe.PlanTech.Web.Node` project - -### e2e-tests workflow +The following GitHub workflows are used when a PR is merged into the `main` branch -* Clears out all submissions for a particular testing establishment reference, so that all tests are fresh -* Runs end-to-end tests using Cypress +| Workflow | Description | +| ----------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| matrix-deploy | Automatically runs when code is merged into main to kick off build and deploy job for dev and test environments (Can be manually triggered for Staging and Prod) | +| [create-tag-release](#create-tag-release) | Tag and create GitHub releases based on the commits/merges into `main` and `development` branches | +| build-and-deploy | Builds and deploys application for passed in environment | +| terraform-deploy | Deploys Terraform to Azure environments | -## Deployment pipelines +### create-tag-release -The following GitHub workflows are used when a PR is merged into the `main` branch +This workflow is called by the `Multi stage build & deploy` workflow, and is therefore triggered on commits/merges to the `development` and `main` branches. + +It uses [Semantic Release](https://github.com/semantic-release/semantic-release) to: -| Workflow | Description | -| ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| matrix-deploy | Automatically runs when code is merged into main to kick off build and deploy job for dev and test environments (Can be manually triggered for Staging and Prod) | -| build-and-deploy | Builds and deploys application for passed in environment | -| terraform-deploy | Deploys Terraform to Azure environments | +1. Find out which commit(s) are have been added to the branch since the last tagged release +2. Look through those commits and, based on the commit title, figure out whether the release is a major, minor, or patch release +3. If necessary, i.e. there is a major/minor/patch release change, create the new release and tag it with the new appropriate version. + +The process uses [semantic versioning](https://semver.org/) for the release numbers, and expects [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/) for the commit details. As a result, it will only process commits that have an expected conventional commit title (e.g. `feat: ` or `test:`). + +To ensure that the process works correctly as expected, you should ensure your commits follow the conventional commits specification. ## Other Workflows -| Name | Description | -| ---------------- | ---------------------------------------------------------------------------------------------------------------- | -| build-web-assets | Builds JS + CSS files (and bundles, minifies, etc. as necessary) on PR, then pushes changes to the source branch | +| Name | Description | +| --------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | +| build-web-assets | Builds JS + CSS files (and bundles, minifies, etc. as necessary) on PR, then pushes changes to the source branch | +| [clear-user-data-from-db](#clear-user-data-from-db) | Clears all user data from a DB on a target environment | + +### clear-user-data-from-db + +This workflow runs an [SQL script](/.github/scripts/clear-user-data-from-db.sql) that clears all user-based data from the database. + +It can only be triggered manually from either the `Actions` tab, or using the GitHub CLI tool. It takes one input; the target `environment` i.e. dev/tst/staging. If `production` is used, it will not run. + +To execute the workflow manually using the GitHub CLI tool, you can execute the following command : + +```shell +gh workflow run 'Clear user data from DB' --ref development -f environment=development +``` +Which would run the workflow as it exists in the `development` branch, using `development` as the target environment. To execute against tst, you would do + +```shell +gh workflow run 'Clear user data from DB' --ref development -f environment=tst +``` +etc. ## Workflow Actions diff --git a/docs/diagrams/architecture.drawio b/docs/diagrams/architecture.drawio index ef95c5cbb..bf84f1470 100644 --- a/docs/diagrams/architecture.drawio +++ b/docs/diagrams/architecture.drawio @@ -1 +1,299 @@ -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 \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/diagrams/published/architecture.png b/docs/diagrams/published/architecture.png index 2dec81e9efae4359ad5f8cddc254f3d1dcedbbd5..3782206faea27a2a563d9b76e6fa1b0060fffb34 100644 GIT binary patch literal 224288 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≶!Z{ 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

k~D_09Z3ty|=dd2!u00wvRamqwh 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%0DNjlmU?yy%_ZxO(rs?W8M0V;0|-kSqOngnrQ zF`ZI_MFwcdV8$u!SP@Fx2(}Q;&wSW_aekUzLjqY#0HWjFsseJ$mTSp?3-S?wv0s)a z?xS&DCPe~Cafl47KkoK)I>GA8NOtL}L4JPqzMcv{!U%+QAuS77bJL>E?HyVnXN0PB z?CWsL?w ze{~v#2=yenD<`km#m+?-HHnkCpBl62SqHl$eRR^`o0dARP%6z zUbQve(}A?oAK$?cvPfO&`xeAa5P)Fk+RwSa%SquO;E1Qu$sM!BTJG1Wd{ugC5B=fc&dkEmz`<&BT3wg zg$1)L@cSteY|=C#xp6XzMlX}Ywuaw(*{<2SPRccw^%FoK`AUmBJOk70NI*X{ZPl+& z#csRti$B(S9hWq;{mJO-$VGcs7t1cmxtP!Kcf~T;Xn1ZIBfYID=4~&$QQjtTyjz%?m$ydEA@*HAl)pAs-Wwy7 z4+c}v!OtU0gs0G^-%Tw2=e*#k9K+VPIVFX3W3Jh>(Bt#h`U(F z9?iqzID#Xw^Ol)LFMbsA-D3#wH_>EaW4n8LE{!87^Wd=xK`+Z0*n!PM)875Sb1Cr| za~A4=>~2lC)na99M{w23GNLILPxoW-2!_igepc$kaYo ztf-_vuz$5Ff2_vd%jSj#!NMSC>Eg2`;iOGd^&C9NX8L3U{t6~s(I~+^uAx!_-JDIE zP!^*8M20%JK>dlU(`$`-#uLbf%@+HC*8F04(?t~DgLaHkUN$kDsyFU3ufpm+H2%fL z`+dO4E7UYoq$aMdtsP*S-zvS#airM(qT&1=vweoqC_>2!`)R&KuODEheO4(WNlsCj zQ?~AKm15EhQ13Sl=_s1Ter8QSzWiF!m?wYJv_3rU zlimEmHT@pg{TUV_Q1!5JhCGC??QHfNJZIU@Z5M2?z?XAVmD?uW6-8qmRsxA<=n~Km z`ameN^pp)9IGUG0LNit>lMszCtXz$Ee`W24p5c^;u@1r@7C1{GFDqK+pFxR9f0^u( zZy=>9JlM~6@h5cEQ&%4nlN6~}Mp=ysLiQhc*Mmw^QHD|3y2|l~BoV>U9Pu*fs@DPk zx>3qBb$iF*C%X!B`MbUANfV+Oi-%v8TQZLybt{KTckR8*p>KcU8;2dF4c++QIKLdQ zRJS!&t`K%G$FI3|sz+Lj%<{`hwI{aKKF6;brao9|Z?E@r`In3Kbo^ES~ zzXr`rWLOods92f>#)xW>Q2&HtI30fqZ&n>QiY zMW#E=rMz!aKBZ0G5?Bwp^E0p7M5MOpb2cv3r{0Hggj&ZoDnIj+SQZ~~I0BBHAC_r6 zgVJIFI}&by?f&nh`55&8obypRRe(~;owxX$tmdPl+bT8dsOz77Y*YL21D;6$o1ujW zZwY8T)Htlv@FTM!6*WV-?1E^LGmr*BfTbr%%5!OT6kZ#gxsJ{{IyzpXga>-r{WjmQ zLwC?(1MkL=@r&g@DS`^nhoog6Zd46` z5)(~@i0HaI__x_l*M6nXvD_6UlXq2Yt&_L9nYxg=A9rM<`XwYB`d~+((3Iq4Igx*c z5Zs@(?YNe@e|r!giN$vW48S6PjY0izguqTaL7es7uwFH6WfPPF+Z!Oc{&Z0^`jKFA zp*ngO-Fu^9dQS6#s2a_etg=Qjw>x-EA%3<;)%iX2P|s(y$o_dUBBVLkE#Irt9g6!c zYo8o1D7NzP^b|LLPo~kzki$kuC=L>+nyyTgrAw*6xN*?*ag>K-0#V6HXR2U4sSn^H z1gF*aT*=_vTrfPi!J;T9>PyW`&=CUeSTo)9P?Pf-()D{h_dNqrU@g2|OVkXMYvx0qj8X1e+o~Q;rKHk`%;pRX%|6=%g*SH#I9&kPAJtZA=HNce^B;(so zR$8ItT4p z2XKYLqYe1GkIBQ`lnx0~-1O?Xw4c;qV>j;-%{5p%=4l)W>ls#8Y8Co$R?6R|CtrJL zm)8j>8GAh{Z7oJ5HE{GHa57;x#v#Hfxyvg20QJ|s8}1#mBqAT1d?uuUC1o^N8u2qW z`zYcG7{o8g{2(S&e=3xpb@-ItLu=anTltf3bLT?WJHlOJar-wG3 z9~h$a`NA46WddZvtAidJRX_WnFkyWFtK1M7-|XJ-jEvjogyFFy{q(sk=9t~ReAc2p zw9wjE9EKgnORsQJ$k>6w>~1`b^57rhg?K2v=srg_bPy#fUjbK!%Y40h>|*qn1kN>=4_VLXIHe`T8@XkUP%QK(eSSFwvoQB_#fsX~yY$r&S^1a3E zr>Zm5acO-wzEvFk{=z<#uS#L$_!&ddH(HsAx3KZzWL;5RAaXHqLV^st?UG=qjuVnQlUi<~*v+i`A_*pd{? z3f@9IPl)Wp8n1oN_v2W55o=5}{uq!l_#P~{ke;3%EbWx!SF8j~lBK1{?=Zirwtsp7 zfG-(1={vY_C~o*=XEvfYgr6=3q2MCqc*vRhE}fKO=S22i?4kf(&7o6nxJZ#b zC(s}aVqJPldcAT(gJ+1+z@%i_!>&DO?PvZrH&B+ciQihSnJ{Ss&C!I^7W->sw;xGZ zN}8SIfyFs=y#W_Q5Xb`9%F~6CQ+h|i%p|pNebH`0h6~z!=0x{3b}BLiE3Ac@D`xgy z3WHt|V^NGV$Rd$Io>;9LFDWpD(Dw7scH8PVtiqA5!dzRuebF_j`r7h;)Ym|*-TDhH zRBX~Hh)8(q{fKBvn+s@uvSbi;C4fvTKKunbM&~718_V=T-xp@*Pi)XTD26ds--y@- zITE~F;iD1~*&toXnHgNCvDV|162iyt)*d3qg8-io14}wAKy(;N9L%fgu6%sy_$wTi zOF_407z1x_fQjZ@3*(#GVg8}}VbzpQ{wFhD+l`2g$}faSiMT_+#xbpChul%Wg#~^@Y_Lpgk0rI*okNKhKQP+!(Z)(Kk6)b^>m9#X!Rr#e%iy{vVnL_JcaNV`S zS6|)$5D>DDdqC^=urn&mUxhyK;ol3uhv5FD+F9_3N2_zL%c|MXP--EOC+lUp!y4gW z@THJ<2y`$<5%RpT{qfGI=9fDH4`Kk%iq)KQ(dg7q7U{Wks0wLvo4nivkb`0V?f6T^ zX%baY1ZfJ$@m~wQpZLX{g@4EPYnUUw$Y!|<>4+$X_-0{;@OtsPD8gXph`tt83|GCX zGIAQP95ZC5({MJ5j*S7KCS}AvtqGX;XwU?4Dh;tD9F*Xbx^IDHx zEUw|ss)4wYgPuKVhjHZhA+d)#$&sP(abCBK@gQwk*Kb-nk>|YOjD_ymvt%jV97%}o zM^0HUo>HGYrF&xLz*V1@$lfaj&tb(Zv_7?ve`_rh_$8a6sz<#J=t-_9S&!&jPUfNz zYlGg$U9;5`MlwP?G-ewKdLZ~j=<9>Ud)pl7$|L6AJd~K*(cPRfz7C~(GjteG24!$V(AE?<8B?hf;XGE-IotccM9 z>IclbGow@E27pTe1L&7Y+FJ=86nFxM6AHH`M^9qG2OB4P$kg;UTU)mk4UM;|Eu04F zXijiM=uw>zwRa!zQh*L&s`Z%1Xb&G$`3{Np`0L+@O1hu_saapR*XdnYXW(DBV{3?# zaXtdXWEOX(^0R+J|F`~Wz7R8}%q%OZsg*Fj@OQZ3xv2aLzx0t;?`0p`vhfvE#|BWn zqdkbiUm*l8ey>Lg^v8*uYCdp_=dG3C7Ujg@2eRExpfqZIOE^C)+KF&ll!*Yc`KDYM zZ5|gAyI<(iPpM{4S;i!IzvfGojW-UXCy@bly%#pP z{^}%LS%lS0IR&#A{663q~l((hyK>opxYb#qYzl;c=022k^x!B{mJ5t z>Om)zQE?bR2bmX<|2{IG{V}}?b6FSq>Q&aiArI8lmG4r^ePlzG)Xn!KWIYT)+s6aP zw1`UsPDcGa@Zr=@>t7x>xM7xEw4-$*FZU;IKWE>UH7VFU7A{`A3H6OsM$8V&nkuKHi z1={bfZ`KAP64bClk5il`2aVx>P(^4MVTJNRp3{DR8P?@Yrjre#(w^CRe8G~!5cGptd zgJa{9nI=(|yZm@Ig*D zwnHb?Wi!azk-}73a2E{ryC#>l&v%i4cm)0SkrIv5fv!P!8H=5ReYm`yG4K?_sFJHQ z?xI3V_+DTxXmovk{`*=TI5;ZEAH7s#)B{QTdl(?YxHvn0c{t<#_tdX4jBowf7P#O) zQefG64hCJ`7BJ@p7h8rNC8KYTrWUvT6p0mm?e)KZ^Mq1@fGLbi(3hvdd}19Z^&?q9w^ zLulBkA|MU$WE_VPcmevC59>hw{&)l0j+-JjHX*ALuWVL$N>mRSNv|U3{pn zW6(-b5{f$7nz*>Qf})}@{nW0tPT<_NzxK|&2iLn|Ty^Cv8$m+!a;t9n7eE<*|G!r$ zYelMj7bP*Po*zgIe`E%e|2+yodQR@O+?wShfCQjf!7eS31Jy3Fe5dbx?^@G$lRyxA zr)b`EDN2AAE_x^}sjzgOC9)M)&z@Zib*aDpUg~zkE)Hr(a06K0_&>1k^W`DV5a084 z(<7iruyeE!`TzI5TIy6d-NNfdjw6_-FrxuNF-2l2GeC6cZ+7YKRSy=0n=W85!!TRx*VXlMs z;sXM%YnB8-GEv@W&!R(gpN8@aEXz0O#Iuq{jzVQ~b05fUGY8d~0x7zKFyxLs=&<_t zWjwz)-}YVD9T4y09uOh;FT1b8h3uV%Tv5<({RHuFSKYyxrwA=+b6$UgnrfpeCxMOv zA$MEbqWOeh=wIfV6(AMgJs z@c-XFLgEP3^e6Td{9-foBwX+=ljJ}50&IWNHksEho)DwJj>Gmst-WKy)OY4>LB>8% zEtO~V_>4jUat{Fyb#yTOq5>rU|N9^J20Uzrqjy-tkIRf2yjX$MsYhG{5Vv8z?Kl*i z@c)H}t84^1$bY%E(A-D+LfulBRZ=JfDsCMe9VklH5hTdwV0nR})^%Bd!BgLh-SnLy zd5U8qE+CvbNHBv9fy&G^`NR#_+1YVgblx#?>Y=;O_dMbEpUO%uIt}yV--{QAV9kS# zEKVbYwI~}fB4Ve&n28dB@MSbt8K0E2kE-$Gj}9|uLl40wcK$ro^sPB~J*NFA#wOD{ zgxaC1%7QtTND5 zhWzh{4fbu_z9;g_Ph;RJ_xOJc5UuhOJh0Clb!`)9k*L`=zZL8dEC2Fut)+@a??%pn z$zckv^!TfWhxoV1rQ6TcYp=@V9M^)34QI6b78{kMvoU~lk|W|l)X?god)4uDkK-BF z*_fGs=htb35*P^QdKlE$#`%hQmX)FyW{mxbEwI-gk5N~-D!0FEOPs?tkOnG%Y+d;> z1#CNz*KYg=aQ7UZ%!XgyFAiQoGMtH(1k^gkY!PdT{pbHjlQ<;)FtNF@#z+ z_w`42H_wG>^Nai6q(?O9&uR|RL!W#0MQQXyH zyj(#`+K)(4i3G<^IALcT9WP_yt^+gE{0dOHdx zR1;$fYP&i1vn-c5YMzF2YP-8It98PkP7XbfJX02vI9pru-CGKA@;$AfA#p5u4<5h5NFJ6t40^|iJo|2f2uJUHim`ec|NyfStmqPi# zmM28f$a*<47NJ%)z%x*opH_s+X*aLe?@6NuokD>vY2ThmCk^&1pNQZ^3HKl5F1`Qq?S!XkkYCZZK za-%4DNM{86`O%I2`oajJM@H2(?3*>hTJ1rK2oBi1gex!b5T@BHk06T02cSifL^Q5+ z@r#r7RSpzv=hA0BQ}3#1%=CYD5Flan?t3nXn&x-y9s0u#6uU8!fq?NHpp?9yFHu2f z#y80W=A^Z%$3n2{)on(Y3k!-1BN&ZGfv4K}8KcVFQD4JWK6`^GZ=4u8o)<8Tk1zAO zV4pG|H!MqVv|7=B*XEWV=%WEc8tCKsA=RD0vxzBJ($EV{@D|xufF13*j_jxt{l@^@ z98ggR6pgt11(!+BP{ipKV+Kq*nOxxWbS*Ya@}QNi7VpRMN1x_wLuKqe}Bp89| zSb1O{4mz9AbwR7!+1QjDK#iELdmW6Hwcm(AA6i~gshrWqR1NlovAZ$0xl}mMeL*MM zm6I%cTarS+r_s3%%TxHgM!|m~BBI`rbbmYu4<84eNjZ=DD0@l>c8xe5%cxf3n$hPF zY}c=&=^rX=r&#uD6!D8s?<%!H5cg^>Ztm-9o(%n|S-5To1Nl<~FpxF58lCPppkdME zf4lJ#qdJYknLQAVW&S7Jn^tMZkl(v4CPI(TurBnR8Y?#Um(Sj z_J{)fHR6YsdY*dv6Kp&mG|uOltcVBKb!ea(nwt87>T;LhOo~iUaVIDGrS06abRV5i zE!$G{v{TRsi0XsX3{jxQ-~O~MM)yawQFTZYv?hKIf|!J;XUo;#O3%qU)GZRL5o#Ik zzBc%jD)xT=hBS)1CI3?%5kZ7n$uyF$+6Da8ea$Shks>)ue_YkAXMrOm) zGSzwLl{`JP9rfF>x&xyGITApkhBGVG-~wO7?7Cud2lUTmR@#HF0*yAVM>j&TqgTg^M|&fx zak+zYRMKz2UOym%9477ZHHo+P^m7)sROuWv{mY3z)nyUQSMT97wD%^SOhBsJ7<4;g zp|&D|ZVK4&BL*h)o4K#fz-CWQ#~%_4#AecfE(GY{P4HJgHjuMjD`4eX!|JZbk@v}_ zqW^gsFv&yhCR&NIpext))|SkC|MT#5T&%uC6^dfPpJV0-UxgnSWu9 zwY^MO!}-DVg~wFbC|1pTy^H_2uqlM5>X2?1xfd&AR`04yz$@ZtpJ?abMa3U9hTC8S z|6K}>EcN+PkCS{?wuwDKnZ|sAW<7-)Mx_(U8je>EWXi!f+{}Of&@sfz&6)`VI;b_E z)J22y(>!lK5|vHJX`|*JNN7? zRL|Q(33kSGO?i`ZfV{@H29GMKr;h(OKMhU~70{0T=KOj1KAI*CKx0a!X*!T+^2h+{ z)`E;}fXa!UF`lQBoSf@OvG@$aYG>VHtnoIE@{K^mdnT&2OOB$3%@S5}A-TmL*EWQ&ffdp*`f~)z0?+x)Yeq=!Rt=>XWP$DQ` z+6<9U>%n9uQS8?|G4gq_K3;k;!6RpHOHnfi>}ivM;(8=j)a}>_Q)RfMGrmn$sv()G z3|gb=Z*2{_cO2@W(SRtNZsucyNm||v&ulF~^)^U_$V??5Knxt6v;oBjDar7X3~oVy zbipEKnL=15kjLav9gWoJs*Yz48<)tT%1xsZt_P?e0I%ExzX7ZB7TilBO}wN{L;=r* z;ZvR$p{(BEjqBUZe_o+$ybK|~!aU@gj_GQsRNyw%#rNAN>r1}-@ZWD1ejv;RIB%nJ z9=VoLtdJ(Z1kWnYY5`#sGcNZqNP_mJpc>P#KZ%c=%;(~=rlOn=nON`^##_`B1qhD) z-0qvaQ~n{Z0a9fPEq^{)N$fK=B`Nb1XuoG*!0;3z3b<-t%xy6UTo1)2$u{=Q>59Mf ztf{HBA#hM!^L=6;cCDzO;1^^$57y|puYpx-5g{lCdwP?lzmyo6_i7ZZXB0$I$GYLX zg05q}x$MojcvAZ3j_g#7!U2ewT7@vlLlZ^pF3`z_YGH`tJgH9B0vIoE=iB$PlJ)Y* z!T)qL%{2L8_+C&w5*jmGz@fwzj*YA#HvmA8qePdJ#ASjlr@99WkG~6y`@L3N_&y|K zP|gllU6M_&U8a2HX3d|UJuz_%{atS#EKocwAm!DLjAr|$))S|+kT{B>v=gM#{HbBKfjnW8Hbgb@wJ5_ndgjUi@=VcYT zq^K=*kWWY?WY>8KT=K`+j@9ixhM?^Wdp#}ukZ=4)u&C=d-PKNi5`G*lFUO3ei+VK7 zL8`G(92*rEg>cOaHx+kt%ScP5jda@?<&Tw4sCa_b^B?h~9V3^+_2udii36ZlaCbo~ ztAkz9Hm9HS7&PzAcy;zL(+hK*q@0 z&aOHbfdC7r&Sbg)x}6F@;6_0~J3T%0ZBsp}{{VEe2Rps018M%hO}6G6_j1sUxEd&- zZk?L;ww!VxCizFmVs1xw|5sT9r|ZKpq}`7nOL&G6z;G&dr;U>?o2pKG2&#NR;Qn#{ zE)&r{dBdknx#PptaRV*>m()pofW%)o&HVx7v>m51nE>qxSBOZw*#jQ>ts4f|a}dxv zUa=nK+7B3&V)@69HOV|x#m}oNBR>aXp2AzA167iDMTf&}N2;qC{&?o>?g~_(C_>@^ z>qk{Un`vVzH=6LZ`}S;OoR&KCXUU;E%!zmin-X9bs z%09_?qEO~SOV0rxGO`C}TdRAG6=I)~&5Xm=j)0lM#=T^T!-^vMz zO7{td^ax+ex~rM%*UY0zZvo;hVN4hKjILx+6Lu0&69mtIkS2QPCWEDg-URJ#;85>v zE92m=H}C)Z9Ayb0Da?u+bs02mBk@!MMPXUt0 zze^HP^aA+(>t%iGrx8$6R>>~~Vkk?+ zQVrF=udU6Hw+oYo(J-ehIbL%Rct^P0lKy7-$rPf0Wt!<0Y!B^YIo{=9-IL-lOmsR=}g@C zxY2;Y!W`@;VE=KV_{(LdP*_J%l@hIsn01$Plxl{xf2`w!x8C8`u>M<2he}Ndv z4<8@w)u4fH0q6d1iegM?MROLoP@{pxM-Y4c(|ot={Rw>PBuTIacr&J8%3OvhP|fRPK?s?0BmRr z*ywmB6Bdt9v)Y>eI6y%r?}X@-J>7_DcKmoxyfOO)V*X|jZHka<(Ja+>_Uq`D|HL7; z4}Uo7L`^nWUbGKPvs4@<-_UES(|{?|#DA0aDbf+Xv4dBtjvs6Nx|7sbfgUPYdqeI( zSsu(^2?(agI?(l?>SQy_$OwBBmv|f@FPV#d&s+P=GhJ;yLsH{-%@mcO@(e7v^lyB} z!*}V98eeN1U(T@cXE{xow5*48yTnPGFv(xI zYboRLn-T9H)s@tj&anMIoZ(eY054D+$&*dwcp_B=k^=-~aN3#?AodcXFJ5(6-|y7=?5>rwapfd~Vsh6#K9 zQ@Si?Icleog{X9r$Whw#w!*yG@GJvun@1| zNEolTExzFk`K-Zs`XME09!gSPxOKcRs&bpogFo{zU;}^2VAJ{tZ zevR9~08`!pJ#}F7xY~s~@0?I>_wM@+(7X?~6#Mv+=p|11dM_5l?ESG6?!=w&~P6&8t$M_~y*VEFc|n5&_t)}T%o*F&-}d(^i|rLXgDb|v~o zzaC!YhqlfwX75#RQ!EN@mhgA3{lJx9a@(sF4;|v={nD=G?WsC1_jg2!U);xo!7h%M zSqfD^dI+J5i$%`zVlHO-p_I^Tw0|+b~VED>v*j*khTJ?AUp> z`NCIIBSSrh9>uTxJ8^e7@56hvGj%BY@<*U(K>_SonEADoH>u|m-4o>eB;w@W%pje3 zsd2EosX8z5D;>XkMVQcgh~^w~Yh{i0MF*|W!n?J%ZATZYFMn3!ti(;r=&3~_2mE*;e36xuNb?q{ zjD@`3BytdPmd(B2{60un91>K^vT1d(cq+b}vg=JJ{}d&TINMZQ#T2|A6^{hV37s zZ;JfhAwOHrH|J5qDWDf8kd=MAmhAsXdKY%`&f8@Gl3bsifxy|mFnIg%m5|?yk2;J) z4{UL7e)R!b=-<5+`S-ToS?X#!IM1O>JtQ(43k>Ms`kVjcI?%0yjW-|8Pn_RKJ$)?)GnMBhJsw=}rQ&ptds(qkQ$885Sb(CWE)ghWj3wgOpkRgNKFOZ=cWijlNQA zj|)Ojbppn!lme`AyabC>FaiwbqZD7ci-LCHAS!O*QG|+!x_QFPV_M{N^o-YC$llkHK z$jb(;Q|h~sDH9Ka-5=M~C}U1HpfD;joAD~oyr1~i^F3rCjisgR6epT^^_I$Bze@Y` zdpG%X5#?A6W%UEzU#GHuAGge^gPc@{qk@|HIc? z#%0|$U86K8(s3dwAfVD90@97r-HoKgNq2V&5=to2(n@!yba$6@ckJWzy1buzKYPFL z7k_>O=0C^8nl)=uR+1xUG=_biONGnJPvzq8&@QKUtTp>Y$<{eTO`jqYz6pDOEi3_w zT=cmBID?@EW?sD#0vn3SNVbV)b_RWtY)A~**N_n&hgJfeYca>dKPZb|xV^;bWLK(m z(<>slD*!)_eUQ{R^-HYc> zVU_%U26po|y;jV5ony>a?a?#&H*KORt-k%$p)U7H8H1IUZs8(ZM{Wx9o6XGc$}jY7 z2>72Diq%6TZQ;DPV*-EQ+QqX1#JT0ICPJivb13(pyQslvCYZZ*5SX zknf^IR@@Jd?p&(1k$ER5t_?1>ddJdbLKi8x5>q$${7GmbF68zL((4=U3zIWu_=;Zn zq7}?yL|v@gQ=JL2D180Fe8GNbU&r_>H{0ExR0Xpt+u?P#uJR+B9RVUA4|_E(j|45> znf$3DaQd!=-xwkG-=5N!3Sp0(-k2V!8@JPmTFC;O6wD_>!*j_VbK@b4zsqf}RZ?sV ziug4}HbBe-8<{Ni58P72R(ZN?R}`!OG!Y(QRxf%CtX{75hMZvSZiV7LC!FsM%k`=6y##J-UMK zhAKZ5rjhYi2VPeNy_2Of1+S_<>1xgTLAEvv9>i{x&Bpcd-d*~rfUCG6?;S4}I(q+B zK$W0y^)iqCuB%TDVFL*=E2a!`wF)?p<|ug1-OO2PPbgoK`>qXn?ol14ASH7G!W4D# z0)3tC?4{R(c^$PvQQgt1*i;YTILDpGbLely7OGcgA>bPb_5F5Oj0)w0 zu657Fd?sGl=`Cg|Y`3rN`H`1SzE-pzSXNFZ0@$;9VOd=c9R_BqxJV^R#^=m>h-2Auym92EZd&1`%V zGa|fN*4HXCz=Xy3g_n3iDv|*IS%MR>ZRK=1j}vpTmdr6%iHdnP*VnbN__i=`+-i2Pb*KEC2MaCDYCHT_jifj!fe@9&cn2d+BZhgZuT zfOPUB3h-3&NBXAg8pRx zH~fVL=x?XGLy?$!ZBCcEPu{wE+8hlMrF7QcCAS(Y5|+Q#f?FU3-;#8fh3PxtQL`Ne zn&Lg}K4gCP7n03SY?u$HPkb+$zW#iXJ!svqS3#tJ``ZgugzbLRx-t1M3I#8^__DO-J8AE?{d7-U;Rdbx zg^pTukawz4b9MG-G8N-y;Ge}1wuxHmx|0fO6SG`I60VBrWT0;FHd567A|W{Pqhel8 zCHJ_mWRgUeHYd>Gx-A7kSZdlje?1yF*)n{tgJP%tS} zEaVxjp}PZboY{{fojv?|cS48l3eJC;PCiCyJ!krtiZM0U{~M>2)9XbC*)ON`^zp0| zksed8+wM8rYYorj)L)3FOuRMKNE8Grtz=21@*U#BV8wTtMz&X`x$yRQh_%|atdn|w zzloY+Pgtg&*-F_h7SEpcv`Gv`1k02STIzV0{s2gi%s6llPj4>@yq=hu7`#r3^mFm$s^K`7GxnC1hM)pN9`4sljf@xA%pCuuP zn}E*_sC#aA+$uof;gCzb$qz>PLw|t*BPv+1-~P2!vhH^jrVn9udVmG`HuWDG*guRF zV5V?-66o~DZ9%c>?hVn)US|FZ>OFz|4}`zJIgP#4-wUF;QPwS{9&d3@pa!5jqd)sc z+X(|8L^nPgs(O0At=+3rK`_9yfSx!5IUi!A!`at%uR5COmjUt&b5T1U>!N!=VlT$5 zf-ygBIFS0zhLbp1eRHSHrOwVkE#>u-jLW7DL;X|9CZ%z>c zfIwVF98iOMlo5x16V+XXqgI0p?F+Z{uJ}P**`St}8J^ySp67meIvTb4VLgI81h76r z9f4S=G)z(M`x02zmyB6~M))A(V5eI4`(dlwbpwt|EHF(vj7Wxv_xI^-q}XHLT}?C^ zF1LlMYF4a`zxW?ND%SXkQC$4uNZ^^fSt5QN_wBQjEus&}b={3+8F}y%w+$3LNnpV9 zSU9syEIQ7G*U^~nGTsf>uOW?G*T_PkW|{^< zeOX~1&(k+wEX1+(Y>xv@PZAZgT?eASp81c8-^GyS+EmBftT=^8>l7~+HgbLrI=3ek zY#%|LeG-Yv@FeLR`44^gty}nqT8Wo3_1qaPd&Czr4>vHJF${oFVr8 zsOY;&yD@r~B(7a;@>N(jpofTn2`c1OH2?g;MQ4-jW=c|8f&Z2j19P5u;|naKfGj~NS@*CbL;tTfF^966GeK(c8>33L z&m&8MPKvy$Iuj&(h}7d-74Z2I7gUVkP8l^r+4uBKCT#UIEgA-xE(^W_SdeJQCJED$ zp%@c2$;Bb+EJBD)#-p#5B7yFqUlS~+kFVuBA2w%^4Ki1{x;1a6x!Dqe#@cM3ebi&9 zjv2;96w5uHoZbK&d&N~3Qfhr682pVK4;0Th;!S*2I(r~zW?oAbKAIR>%RrF^b|~He z4Afw@16WH%!unE89LRI*TAa`Dwi&{AR_X~)7F zzkIhesXOLV%SmXUBDQUw(S<73);@M?NAMX|^v(CR_uTtu3Fn*#nbH{be{ za0E~-A}mDAVM^kNIU`*0W`vqOK@g#Nk#zS0hbWG1E2LepGogHN-AmpN=;&OBhT~m5 z)gQ{N+k~6yVE`SpA}5*gk=Z=t&+umWcmR+o#G*P`5eP+L(@A-ASdU^(sP0(cVGz9z zu}04wE1`kiqxr;bPbL!`dZ-t?^z6BQX%c?y?la=N(ub*|59R-az- zG^p=2dt0pBC=k#+MO0$O7)>?2c<15Q>f3nU*L=zM z^X8a9?d4+hv6|6tgXUU&N|{TqKqIFtiSa-#y2iO)gWi#jI1+eaA%Z`w9+yXwJ9rw? z5o_yum$esjo`_ErJUR7s5tRFeOE9d^FO9l0?*}d zY5+-8C=2k6|39zXW!gMvDM8D+8T8B;$^OXf(4pzaB^jw7TP^lxcn*8j0z)j1u=@Bi zASNl}=(2A9lA$R2CU2xhWo6)*`rs6kJcO?;h!1nVo~M@$MY;qdl6_41G{=leeLO-i zRaj1p#j;&_tFE9L{yG{`{Xn+P%Rz0G=K4!rp|krBGs_2G7L3xmFdKZM`;vZmF76{s_k&C>-&xva zVWpI0DyEPwThcSEv=MHh3D7}z$;swzGd6ntQ5 z188>+2mmEZd~WhiG<9sSAMx)0VBD?mIj}9ZCZMPC=)a7+|JWaT8vyvkA#wT-jycsuH?_FeDm_b*PwbWV0Z z_$3zaMDt&wW=Q-S12RAikQTECF@PxgOz++uuDIY(?8n+un#C;in#HnKc0W1oT1<8K zI_65f5@N`U7@Y2(&-45wA6;$SHxirUJl!&!asby zBdJPb905|#hjw&)-2c=o4%J-Ff1MHx&Cp*&0>bHwK7{$n}vGeeM0^14sZ0L1t0RAKGatsJ1|C;&wisp z9wqIS0c#95U9YJQ|l( z4MYC)UjSmJO7Ohcd}=^<7%KKLN^cFvL4lzuZY*vMeCjIL29ND1=IjjBr6K-k$s?fO&E z)RYNiiFcyRGTET30BpOqz|;QM#h-9Ohye8PAq3Kb*edM9G&)b)DW;A%GsT^xXFOf4 zOim7lWDQ-SC8Mu`54Z_n8(x63!nOyPOcBH!FaBK=_?(&=3E1OL=(qKC{LXR(%XopE z`=lyY0&Os#eNS0V#pLzy5|Dm8A)|nv^}_obu1hB*V#tEpZMhA9u}As|w?`3G?yOrS zD%SfK9o|V6n(}lu8Wd1vlRhDrAiptTw0WZaEtcq9ghE(LxK^9tcgdb2swv3K_)$7EBi$O}3n`MYmO z&JnjI;J^IL)`ZOad;gxkx5OCCWtUMd`8@iKPsyjih2ps24MAX)hyKCCC*OAcW;Xah zBN$|IK#YzmyYot1;Wo=sK31IUOzmlNxp%cHB}vSb0x9^_qjznDN5~G~*!VYOhCJ3s1S#hexg}W(;upge;XN2TuCxPmKa1IC5y$~AA$+8yZBBP9~%ghW@cuB zR)x$unL0p?B*y&i{>M4lB9uUFW`8elCYGUkg~{msY%V4K2rC~-iZD8oh!5N)<>H{> zYg$1x>?_m-iExYnOv-Olf+4K5nEE6n=RxiwN6?rt9?^q?rAw#MatjIJQp_NKQ9W`m3aJ^qfgkJ7DF`XvG-gz-J0lN@vuVF5 zr~fcF38x{XR7sWMzV&~NT|edsLmECSh^DEenZ z%zl0BP7TZPH1AQ5%g-7Rn?HqL^p(;dY}U=SaOl0UCY*0HdxH5`F-_HcPOa&x^w~qj z+V()r?tc5nj0_P8gbg10ZMAPRkyT3cji~PyW(dr%2_cjzeEbkjQi9MKW5=JCWEC}E zb;eBB?0p%T;Aoj@h+_^LO_!-SW~=b27bO9tZJRm$o|*|9N?Vq0sv7G-!+ySg(zY^6 zjPV7u11*1;V&lr2OPV{M5^F+H=8g(@)lFLluRHzT-fXpxb)CUCv)ImsB0|pxf+Uj9 zyvPouWhNNOz97%e;B~z@qybkl0$S1b7$k1>zKEI~o(sw_V($^@XMA&K)#ZY+=~6he zXx@4)$rw)`D5kLI&LK~U>=!i`-p@YOouwI|kxSuuv~g3VHjxTdz^rBJt$P)%{nD5% zj~>`6KPr5FK6D~+l!|i^LI^qb=0Os9OTBjOW}obkwneP?2zfwhJ55xzkpCf zk*D37-9wndX+%fthqJu=>F0Z1+b}-(nqAG{_~xI_GU5l2D_}gMF@wIMbVaeKU#tk2 zqCPre-16qHP&S-sHD@irUJnbRFWAAt2J~A7Os+*Z_O?>#WSl{nmzxQuYt7RpDj{1G zm&QDMx1A`5Jg(<1OKR7P5Q#D^LH=rz3-#uimUnZ)T;(Ol`UR(vh3Y@*;n!-DMLp}o z>{!!n_-i&yDM=qv)_J08P85l>vU>;G>=Fmu?jE)9Q&`jxq}RE#^7HJ`xjQaPBrye!Uj>!bZBuTn+iu=yfswi`Y$;|_*+;hMAV zsH7cqWv=d9qZtn0?+O}`Kv`>wDF*J9n=w=s%X8mVSdyt)raD#^crZDDp1kB^5fbnA>>p<;;`R640qDperX)`r-yK7r#M z=YiTJX$fD92u!RrM{`n2-sL_DU9P;#c4PIbTr*k?qK0pIewmcCBycLan(D=NBZ9I7 z$tNkPYPh|2DUV0F`Q$u0xTz+?D0I^3#-u3{^IBq0#b={oHxf&WpGAllq|% zf*n*%Md@s+9I3A&7@1POb6RsyFVZ53N0UdwM3YWFe!Ry1`)Xg~mAQ|4N|o5Tw?UL; zo1(3v$$bk7`gQneX7(a$iJ@nBQYFUrPvxE76OSqSL&gW1;Jo>6xVh189B>~pHLwr| z@JwA9-;L{|Ar^lQzen#XWu@hu1=*qTq?2FsiwuoENM;oHSy*229A&t<_Oou-vI`4 z_3b(dWtL=nKMe>?OYFSc2_d8_RAWnh&DBc(#;Y{?5e`(RZaf*V=!s{sF3X1SII<~M zA>&}LcHa<4UOk?Zwbr&k+oUCS_*HtOpGxfKCPj9dL!(~JA*_vWeEnnhaP=l6zszK; z!Y$<}$L2={(_M0vSOd#E{S`_^6nS`EXlHZc$3iOA=L2aAp72MGvZ0~qG+kxJN7KB+ z2*l`9uoG^*Wcb4>_%Vd-)l=%w+rd$7vB$|8x5OogvRvHH{(K9w&RuAr%s5-~Q)oDvohtu7@WI$+Pn%d?7nEDP$rk{{OM+QY zTWix7ky?FdRgZjesKpn-N)zhs>MB2y!@m)uA8D7|@gBEemXMOkuC!~}5CP$L9h4+T zY1{eLVnL%vFvnUXw3fH(DeAs%Ek)2d;~-|Y?!8TvOU5U#S~k5T^K8)axa+lXy$Vok zSl_yCgH#&s1$E@Mx2IbMr)8#n)ECR^o8rTpywVz*-Ms{2$&0;ZZ_sfi15Q5=>|qzB zgCDuj0ME-a^+mrIU@yw=K^6`P?=QFu3lA59jLOQ6jg6)8REman=*Y^}Zp)QkTTF17 zswtRQCakd|Fp0xbk5ct}=#q3jH2*O?Cnbx=g>5fbhkp0&o%I&sc@_rzoT$IGt15W` zyMcVlS(lXu@*R)NBQ?}IAS@j`5bUmhMT!=*c+G4}UFd)&P z8lnTK>8=>rxdC4@q$;;CvTZ*s5vJL*8u(EO{4qJJk8s$fwVxInfSQiiMB5L?mI0yW zvs@>_Qb`aybcrPpYX2A>LdD{+DSxxAcaQMDzw_NyJI6(5%fq3#4t*la`wQwvJ0pzK zWtDk8c}#|d!=5AD?FJ4Rk~0s6y(jiMD0KDwnbp*&2Rn3;L<~r|GI{o{+vm9qzmiWc z9V7OY2Lz754g>^1{HeO>mA=csp zj~Gi5l9G(GiR9at%$e*Lz2!Q#a~z{Hkc!$k8#%-OU9j@i^76XT+rya$shz5Vc+G4lsg9zFVXV{J` z?&m7o?D?v(2%ltZprS7TQwJNAlid>${x6S$fIUC{<6n zE68h^aCf$fKW^1;riUK@-p(S}t?nRmo?Xh!uFWpYgXo%kjoxwF`%v59>pkxil)&P) zYLWqp())Th@L$xEO_#L>!EMzvnnw)ZQBgJ!>VHxZ62?7+3N;3M2v)ZG8rUG*oy^WC zb0V=`R;QXh3>+LJ4j6!RxfHEf+>Q36m4T^%%pVPc=k-}T*j5_K ziLRWFsK7Pi*&hB|{>$=p)ja1q>oQ+R&!)ufqN3}JCK$mI8d&aXSCGNJC_|YX6H7tw z(ISS6dXD5~R&)Fo^=n=YVZ>FdxBLQ;xr+#PICG!OM%^X>azyFaez<&cSP_keQsTJDskUVt6cgTE9!L7TXk((B=tNUs%u& zk|HFGBO==Q@;?Yc|ILU0ri5p*ll;>ZBggG|#uHp>I-M#|eKmzV zNhrT~6Y`%2_aY_~-E`|uT7KZGTkmE7Xt!x!Q)YvGtkZ=mdFipnKc~-0ebEc|_NbI{ zIqrIRaWESf!*wj-DR%5EWi^V*uh z=nJ#H=_w5O8zw6s;9Xr-)Z860zPycEGooT;N@{KTS%U^0qE9X=q0WjVgv3@6otUOg z;1m3QaIAfL#pKag&;3?gTHptECzjkm7;A^=T78l0Z-$MRb3&oG!C)A{}Fm)(WrR zWh6LYKTP~+CSS|;E<(qz%b11B2OZ+qOt9^qsDro_sG}yuh`%*`2nl z(^0b?2^mz{HAl|ks%81%_&PP`;ll!SNt=J%N5OPinBaMTCt4L8{2Y1+`V*)qq<8)k z4+4_)Q?PbC83uQ0JXd0XxJgHMPMP)>tjRWW?&}v%IlXwelWR>VL(HBA$9(7Z@@$HJ zxh6LxunQiFMJ!5MNMtORJ?p*2Nx(YSx&##V5 zcnrUDg=w60o<4ioSE^xH$hg_3PsLQ!c;^OFQ~%Q59u<}UMXisYV(NC5`?`GhLjRq= zEkxzh$H1@A^li5}mL+btUhmsrx{dLUg5Fe2(`YzC>ewJSUHIri;QcA2-HB#7^B+V*I&_(J$kyU)(zvW~r+YnLUpE zET}W{_U++DX>gi^Z(l?h#={MCb`rt;%pL-IRef-7nd(dX2TBn^Z!97fxV5!4GYbn` z8#Ma@^lb;AH-xmk@BDJ*Lk=gpvx3-^#^x8irq0B@Kp`4)O&x|;*pU3`knk@LLc;4j zeTTkg5`1!(QbG4R9cFqNOf^o3QApX#TZ?+OXTCo@uw8Q6CZ?l9=CnHw=lz8+KBcD_AZ`h)QtVQ+nH+ms0A$kzLBh%oHbU;2L@7FlF__? z2?l_RC1i5^mrsE{*wY?V1o%3z16T!QRls(sjXoeAy!o|;@Eu50iSbxN>g)0D)#smR zixI4utb|Zrx-6x%-5tkc-$#XnS1itoYM=ZQBMrk?!tf$LI7Tt^ESPR|lbwGzx{*(8 zd)`?)MEd9frvl?Q?D?yA&#xRRzbb4vPP#3pS5&ChA;mxQoKTFGu&B_iocts|q7ry( ztMAm7Wm-21L_a|V*_5gymIX%)F+fTQgR2d*%U*|tB0K_s9OyG6IHawuS|in+=tjdb zS)Fv1;7`l4Mix_^?1n?cpWS-+KIwi8z2K;81TlVfRXR^rUtbf%QP30Z$?$T>o}fVT zoXDFxRqOAqZ@hIwbR2O^vN%XPbOas;&_``!6*Fac7?@1FUv^9N0jteqC9KCoj&8$nS)YZ^Wx)CGxassl%v?9>2gzh`*Fylx+ zDtl@CQn5suu^@`=ul64$M8?$#?VWOgdF{61Rier}Dk;m7cZd&=MEPY0op&Fkzmiu_|g zgCu4f3+)$rm?LZMGm?FsVG7r&=ju#1&ZI4UT1%D>;I}P(=UvgxyUd+uBoYW6zL8~b z$h`6ZW0I^+8V;f)P2o>R!%Xky!6 z`EE*=XK)J!tQ=o?Xw{ZJ=;SRy>T?)EdP4UrI$4$^!cvwrV5i_LJU<)zLvjmW!eje- z4x)~GkD3S0_nv&uI*_ww83g!itRIP=o>%a3UUT7effsGO0o6s@fAqLx_=yqDNZGnjZ z_yAW_z^nKdvW2~h%xR?79hyX%{!!e@X-hQYVc&7fNv$EhVluNoSgosP1I~kkg91jE zosU*#*}rH(QDJYpKk$p?QoXI&VlgHcdy}qJ_^SeQ~6Z=9_Y{t3$GxGPj8B+=gn@96~G zb9)nA5pKA=st8n$ofuDyAWqSFNjvFeK!|26Y3xqtoAdqO&WUZeTEu{^-^&WHVHP6x zrr`07O(~fdI|II5x@<;#*|N@9k8N+S2x)I$w@75wcGH79r>m?hxDh@^Fo61V9{b;x$)_I8c-nVd_vNfw?F44opO)LD zL2P|;m=WXC$pzc!tFp$(PajE|!j;6AS8v@Y2ML>IiXK0H749sZCuB^c)eKm=o47+#hIup9O;r2+d>!`^mz({VV%?7| zcM0Yof#)Ql$KsK4lfm$aC_qD^>nH#8zm5Wmx4(|E^P=a!9fh9rYEPVv-Q9FTe1YlZ zALR1T!;<3hvFg}jp4zy$4$BZHqTA{sRt`pUwZw^tYSWh|5K+y#v$0pRr}J2o>O)T% z7&rU#^`c36FGeW24Blha203?(ZI_?Ytl&3c^q3(jGuQR~CC47-}Q6HYLo#;XvlVx{dK1WiHAaZPFv+!R_2C zI{{72=-@jQ|8W)^LP{a+4_WOciUQ=9Z&=?R@4C`Da&&>G6kYWseBDK;vU_>CZ%nFI zQAgZct_`N5)4oe_>b}_I3+su5{%<{z&u28_E#L88e)l&O|Kl%?DV`LJ-`mQZUm30x zIr*hM74R9s+zb?uWfBQ>aUZWy))-;%vu(WXlZ~4w7k?98|JKfSKtsfKi;I>qV)|hE z%5Y9nx{)>t8p9v-`>i}*agry0&+3M(ktLB@LnV5tDo47O6P&At*DA`5UlY*`Go(^_ z$G6_S(;G8jBNbEmmNPy3%H#<%D)y|fM>zU|&;b0c+?+_ErPHgG<^hWmJ5zMc&=NEe zYzY3ua+d*j)p3CEs!3W_;11fK7gW|@Jze&u$}mzw`$K!XmSsX#ZNQ}F-HE~VVv1)6 z?Nb<57qD!&t)264ba@9Z+y5UyzAhFdwoAce19|SB+)h>}y9iP+$cB8NGK$(?*DtlS zjySPT-9PWjDN#Dka=+oy z42*08Z$e~|ViVVZ^SB1=(1SHA&&gj&|Ky#NgIQOzJ?opbU&O1X$Zhwejac09jTf#h zAqY24!jxA8rq0S1?P_QPJb3&U*y2?yay9bV12f}x3%+u2h_uen8tZG2<-9e*xh<1% z9t8$0q2NIJTEvvm8u>HfAQZ~__kvsL$S@%5r(Md(RSk5dBOuAu@|0}?8xs1u8;Ipe zA=ZYy#o%OWN8`eUcOqDmEN}h~xOYaSzb3wr_r*H*k%5XU8cBZ3=K;$^Yw#9~L~EB&>Kt4*^ALVLnBJe@GdZlCqfPO)O)diU=VJUjmgJa5B2T6Qu4Ecg4Lb*a+)0~3ZJqHd^)g&ngZFbV$Yr9%JhrJSi@ zCYFAhtl4_uA%lIdIr0Jx{qrhoMSdeH;WZ1?n2`1n#uGY!9fYUh-*iZBjc2~oH~s;A zDtkF~uGo4mzt!P*-nMk=C&-`ByP-SjzrmCxRtj4=+x5lkJQWqvRn?R+Gka)w z7OV5Az6`gtvAF3f%mnGtI{uV~*Nw5q124`W0%yMyzpCn3Gwqb0w!f))ghK7Rj|g9H z{PiPCN$tNWG38`-N_j3!VBmX4?Jr`g1c;R?L{!`O+OzBE8vEdqC6~+R>#m-Ur<uq|N&TwVunVBZ|A;aU`7U1=43vNNiX9E6Hq*x+F_jxY;86a!Fn zzf;>ECQ~?z>|6J{eg@cLmvp6F3OM}+ge{(G8@?Lf>B!Gd41=z<#jPDb7&bIhFf=sm z`alT_e%heZfQt-gL6C)=RW`Ng|6fjA@a1kJShe>e8#x|hl{n2mF){O=srS@inO}p; z%Hh>;9SKK%?VIk?X zB9{wO5!-bkK7~(^&B36jH7lV7x>|a?-<0<!^fiiJl-_8X*a+C&8n zFM&x^ZSP$9yo=^P?&UQ28@Nc)B2#L#m{ z56DCS@v=*l7X7F7jrsVM2fgyu$`W(_;Tl$7%atDkbLJSbhVF-~l!XmMoEeGrfp)~K ziHFO}9bu@fm4{ugh7qVj>`Z{DH8k2<&IlJq+Zdc@2JyjJbo9y8k0+ES=SxS zBlXuzE)VW$SC`X#`yI=d$`K3y7$>KnGjimu27a}7a$^OGx1PE$H@#&^MV*4WKwAc` zIYC;bX**B3-5YFIYKT^9{Nr(Uh(y%0mdslz+sS#cG}nPQ81SH1JjRX1_sHObX4LcE%zvER4{Tv|3vb{L#>){Ijc!gVdqQo6kk zpd3G^!0PE>eOJBgeNMVjd|rn+Bcct?7mVMDb#xFuqTo*f{fdtO0ML9o#E9T?sM2b1 z94zi#pl*R9(luiMc+h5F!Ol`Ys{Eq$4aY*}sOBQm0jGfb6eU*EpErpFp+R(RKM zPa(+npEriLk^Ff(I&7yS0o!YGEaJW>znMf&ZBZ{jFTF@uxu+HB2Mz;XhamQfuj~!YoDR{C$fyJC+oQF6wL3AF<#gz(9COThuUzC`!cXU zyNnzsv_j|-rXD4HMosrC7!k#(H4}=zSc`w_uI{|pFG}iI)(xt2%-(`nP(`Rn(iKVk zL3(fmoOdYDO)7l;G?{r&AXNfz2vkiitv+R&j&9nY=|DaP963tMvMT)tkD*sDm0wnkK29)tUAM3<}jnO0i4RDWeIgHQ}5@C-gZ6Rfk;X+T=Xu7|LY% zkeb!kJ&!-#Sqj^N!*<|WH6HB6?u}BN_b~k1MI739GGLenY3l}muIh@2F|(%M`2#Fk z>~sH5FI)q`h6pZ)Fnt0)83}DxQv69Pwr!8^SzhIK$vfvR3oHfq(ZuB4)_du_Ao9!p zlA03B44Vm-f8eCJOOwRADqT~`MObp5ULt~=SxWsGv;%9OMI*CoHEjc$xJgv8bd1%% zBPhfF%M9Uz0UFnm;Pu@26YJ|L@`}q4s;`$QUlk#wpSFqe(P8d^VgHYNd;;zfwe3ib z06uw2CMD3tnn?HqKK+-^0%8lP-e;4>~p&gY_$?gUD){-co3S zv?KQ9BUTv(W7D!#p^H5fFJTwWT}1=en{Pldy_oUum;T|+@M#JGW^xvLk9T43|E<&T{&$`BUyt2anrG0u_`y;s z2jhi>2>tlZ!h->^*!@dFjkc^Y44$zN{V@9P}Zvsly2vlHr_-izT1c4Vf^YWlCY| z_*~_q{>x*j#Fn-x6worXqkOi+2iI7*irisj4OBGFPdHt0NISfPuPTCAZ$G+ulz!(x z{2*EM0JH-we00uIMISJ#>z&fZ{tTBlJW35Npz%x+O(3p*9PMWPkAK2S2-vA~`r<&hXF~h#157}ST>9f^11@27koE-)ZHMF3y<*vJe z`G4kdMVASyCEd9@4p1@FtH$dIVrfa)C#V;GvZ5qUGO}gBa7n&SKtmgamdaWyakSqj}O7|MwmWsi>7}MIKJ}8 zrtT2si~Alo<*#QFUMBZlZ;C*_$n&)dP+f{9SLACpzPJyTnhva@_=?!EL*W7cBlwZ3 zH7#`-B4`)05XH9Nfsj<$AfZi7z373o!!;P2)vjVQp}%5n8cV3S4KGmQea`>{l>8sG z{$!7BJNR2+lO6YU=i}E0a(P}k3^^b4lN=- zx=R9FWLGzE`TOOgF0=XR*_i2cB!}J+)IXL=R6O~r9XPn*&|T(oxNMfeT)m158=+PK z9Z@JaYY_H}uI8c!-1cR$ntmB$vo-pCneO)zxE2OUG*Ik+K$r4_-$?E0)(XtSU$dQU zJVNnL$MF?xy6bQ$Lk6u=j?2#qYH;%};ltB2F^JA+^HJ0n8F(|B6uwr#Ho6r zRFo1L9`|jT%V*Fdlyg`&?#iFF4v5qp*h z?rqJ3p&nX>$>E1aqh-d^6VwaQ=ADkM@b2$u&?BE;{^z})da%Ef*LW5;Pn7vo$L+(f z4=y&Xv9(w=wn;C|W6@TVLaJCA6r?gc;+`wD(GYe&ecVwAW!%X&%0B|Ng1Q*A)e7je zg`en0Z(#Op_CI&R$eFI8VtUF->F+f{^MiGWWLp*;p?}*})c^Nh@eUPJ*H$nCquI_- zRc0ddrdUJ_wS;&uZ44o}M#Dkwd7^Mw?Z6n{we0ust?R1AF;Gd{(Qh{>+mf_NpjAr> zMRy{IpAA`>jqqv3`I8BsfcQU3QaL^M$1W(TL4=Dr?D>PENnhTHusQbB!8c-=M)bG0 zqi#?OkUT-~7)lp|UEgcZS_9>vf}$eT&;2~CrHuH#<@@Zpm`c@;GNzH;tspv!I5p{R zqyL>XXmBsYl9hf=5IDooTA8Wrs2E-&q*>7_OV!XOTIkLCIo#8-X&q3=G%D^7k_m@0 z7laxcW|mP2;Q|`uH*7^iC$DN^G7~u3aUmTW{!gny(GuGNJybL26|bd^UeEF`fP1}) zfWO!##_KFE?ksB@BeeG=B;k-wVve?GQ7BrsSB?xU;a4Ocj2PKPOKRl-hFrsy{tMaiE8*%xL5ZV zA}vUDk~7VUg!>_3P;;xV=yRp*X(@W#Huki^y@hrSLF~v z+z(7QC;54p-U{?b97r)tP#nuQLVT<>0aR>(9qbz6#5z2{o^0~<5l|c{?Y4wUOGjg{ zONn0FK|b*dZPE{x2NOD=Sr2dkud06#P}l{J(9~Vi_%`C_CRIfe@5RH>e@e1!?0d~2 zRxJ;D;P58nR{K)6_+d7(Jq|^`)UdWLdcwSkYYz~WWg|P9(|t!A`iNrAaw5%H*Xw|?J(WM*e?viD46?~zT$v3Dplk-c(AR*1+7 zmF!JfAtC&pM_1ST{r%j&pWpAF-#^{1+wHop&g=DjJsz{ zUPbot^()RR%KhEguVd@nTis0KLblMrs;|09+E>9i`o%aKq8rzjI@D9>oW zaJj?4EUf_CeJf8mR`%tbxv!K2LX4MA#8ARgOFE(l1c#z1s=8PC4M1Gltu!4&)mG}> zm+IL!0oGt^J*=Azfgq>bsX(GqPAudY1-A&irp|vm(w*Q%>m~u&@4?~5V^x`zdXLsS?QyZ+y<*z5!p?^ROpzSj@vtC}f z|D#Y|>`<49t*MxO@b~d-wekq#a1@BUF$Uz7m6e5MvJwpq4YESRDX6~wekjJy%kuJ` z3lM0%}Zd?A`ybrc3mwxVyNPqeDu`KeXru~PtzrB(2 z)tpIbn{eK`65igtB(7XUCdQljromDeD#m?e&&K<{SJ?49x^$ z^WI?Dn-?;A92C|h@CnZnsbouIn^OK1WcQ>-{j|56m-pM-K&%39rl|_Tu z99G~*`+-0gPp#$l+kPDA zksQ8*35y{X8k&-^eGW)oZ4}IY96v#U2+^N-6VZt)Oo8s>tFGMo191oK`WC7{T~9>d zL!k_37rAjJY4Y3b-I2+t`~f@vZ)vmLC0;;3iNnEdl*~;!lzKx`ak-~Ap6Y1b83>>h z=~0ZO>)77K-Kl=idpbZ>+s47Bsyg(Ahwx%&*ZHNZ{lI^JuvZw}VHBb2=*qe)JQS*U z4J<9BNF(=4Vy{%c1-XW(cLm}d`kKA+A9M?h3#mk>$xcp8`fWI1&3`xF0*j9jqa2|f z{KE?S{WqDd?#O{x29vbcKCoEEPyA^Bu!Rkkv3VSq zE}fTJ&W^vSc42Gus)+2uWHy>dsA1k^?WdGFAlrNY^1lyOcM17zPw-Dw>V$5cz53HS z1J%%l0dGBeWHO@WlUv^t`K0JJ9OzGhB9+e8tVZEv(keDuu+U7Z$k&?g_6YP9Jm9(8~t0JkQ`v;uTb zI)l1b*14?DTmniFe(gqVknS9@yfo0AdTGs){-G%4gLcm?B3j~*io{NH>xdP*4x|&Zga|{wF z1K_p)Ug0Uakp~DbhJcjQo={+u_mn{)c6UStm{Qn7tYiUBh^6~LQf z-Ua;h!agN&D$Y2J7IM_5 z>mBJ4Kfl<~Ew8S^DXv>>j6DyK;&&KlleR!RIs_ z1#fzs`yHKU{X$X2AblgkOzQIje;P8Ng`R|gz?0O9; zeS`fpMFjyJ&Q;41TmY3`=Uqba2mp_z=tqkz$7WgprJJ~q>UY$}m0+LbkRSTQFv$@6?%fK=@D8 zA++LGpyf~L6g=zHuN}Bq37}(9a@SEA)EQZroDf^AF&X-q_%?@?qx14>E(rVlBDtJu zHjm(;mSR{e*DF*~x15IuKd9#z@;4^RGiz4!o6Ns$ZWg-sUwzCGRJOYRw|E4{Ik9J@ zFS5~FR9uYJH0`dErjtMXLL)B$9c@g4i^ue0&EIy*arE`@EHxg=(YbT=LxA&ynh&I) z=!q8rsbDVu!Zd=l4v4T=jGZ!1x%2p*oq7RSQY14k5q)c>R}u%3|_ol8mcU43FF zD@bWStw0xB$!94|FQ1y zf9H{CM@IIPP+!n$>fIJ1O=sYFw#!du@$_gU5cR-6QWrIm1Ndbit;VTeMXL7Vtt-Ir z^z1CdngJT{_Yhbo%ie0uy_{}<2rjao&8ln0MdLXly$;k;qJ$j!pMFJ4rZlD`O;V!u z!a;#b^yZ)tg79NU3-lp{`91q+L95#LZ3cp1ok%U}^z)9@-1l^t`MC9%;rE_wKSg1c zI#U?lkW7s6H{HKLj46+(Xgoh@N0YbqxfK0ab#>8=Sw#@j6OGI_JgvK7^exsiDwG3B z*IUFAV3}Q600Ol(Jm&dM1k@XByeUNTHgTDUvgApP!z3DF=uKozlb@*r2JqVt9=Xi6 zHeXGac3;1vq%*Q3OHa{HoO01|l`#62$_8kq^cE#b#DZb3PZC`@H-|z@g^c1X&^v)K zvs!&s-H(cnCzSlnyZJNr1TGm2WUz~zE`Y3A(e{gI;qQRV`FkniJ*!*tnYF&w*3F{B zXJDtYeb$wb0t58Igu;}&gi~#C(e0HAMiVIGJp3{jks1Abv-j48aYD(YYcBl2&`!EM z_2T@adAXs<$hDkVXJE6q*Z3AHU%n*H@di0BO3?<*?YhaPB$@ZmcQHOuG~$#dhDn}& z8SbVEIOwHk_AmMgBv@b(Sj|3#Lbw|@4E@WK2zuq`)|ZFE5uJUNeV_}%(}zFhW8(2a zVDZSes?cg+Kq#Qh+5LvJ3;9?N>;+oyExDO7+#0l5ss4>lBP}Yj{Ln5N49hqdh8T#^ zyZDXfwP(nxW1yXIThQ?{eOrPT3G;wr-D2GU0%@c>V&u%!W^48m2|#LVDlOcKKDh%F zuv&5)dE&Q}n1Z`e-pVF@=e_Um>ub>{fT+7M z$RRfAwPc{lhDU~ogm=QC(TOup{%KoZGKSi!FF)Thle$iDGy{fHesf_(+`C4R7 z8*`*Y2Dl^luxYOm4dny*t#o}e_VbK9${9Zj(=Z}DC79KisEnBjGaOOOd<}ZDS14e^ zRl`L?{i&!fGJqq8zOmSd1;G_6@?06jKs>?9$UjL8fUa44Vv|v+zUK4^lJ)%!m^_L6 zW7k-eIg);8iGv7fkHa@jfqKo4gjnZZr(6m%m9u|JI~Do-&JeR3^lOa)5|=X9xFsp2 zTc%;&|2L8i-Q_7coO5~zSSWQn z9(XV?nktI4oSz@rz5z)#`FYaDk0+REWAfsHN=T&a+3x8Xe3!w{$`Q!a*?fz=%zWeU z-}wDK*8}*&ss;nPlxh7Gbawdx3Zv1dTRC3tt>cbIn zSTW6Se5yQI5PbSR=mM3B1+n<8L(xQ&z#f}{dpd6JT@Wib-{b3)aISr;8QK1u@flQO zMvNIu4DNT0Hb$}Q8tPKX1DKGTpnY}TTs#)$c?9#iyY?3gps(|68l^mdZTMnzEOc5; zd9jcaiTsRwRA)p_%s`2R80y=dCBicArrh9rbuHd$h8))GAFoHIYT_wj1m-{Q9aqKT zLR5(6=ck8siV=%l6s5{=hHx8Z8F^>K`LB19VbRr9wDV)%Qv@kA#1D1GT?G5*Ky2=g z#C=1V?8w)ql&pMg^KI$(tbEAts`CwvVB)1CAYPULk#7NT5@_4rTZh*6y3PZlnTxgt zpWD6IZ{*}`WOym!1T%v!ENA>5fea_hbs3A)^V>DLM-Lpfr{F+x8ptSy4dxGMD@E7z z$ki1|2M7IGnjIE8!_8qFRWup-8h#+py>)0cb4P0nbdHF$*m>$fudJmGkU2B6Hw5O2MqT2~w!?uqSK2yLz znwXx&DtjqXdMt#`6`EyEtLrax!mIblBD1yhIxAf?;&`*^?T z7Ej!drREsE-iiFPWYs;)sE;a+X-t;HR0Boj!)08D$f1;R@)L7o5_>Tjs6zJ{~WyQ0SVZj^-KZ}uF8Z8ZeT_bzi}gZ=*B?T0VpUF`tD-Xu5V#X z;Z~Tp(~fnIDVp@*G)=ow2noA0GUCNrCyJ9dBq!_LJa`;-3pcZtOMGNw3w!DQyLFzA zC<9A|Moc#zH__TygdlMitRK{!tBo

peQq)6dbU0r?Tp?sk%)x(o^P#Yyj zTALK}$!PNwU5QUfN~M8#pQ$z2_~d z08D!?hPm(0=_~m{fZD6+x49~0M3r%`2nEI|RP)X5n3sg|xOJ15&+?Rp-Rr6f?(d)4 zytwDRgu}dAmc+E;Am46N`iYGFaxY2uGS8T|R zyL;fx`9v#Oq(BwO;8y=?tRIfY2v`r(UG+Ix1G6MkQXEm-_d(B3L@e)OXtAFGvEFw; zxU1;L^DiZ2c|69ixQuvc>TCmY&q33Fpy;e+;W1U=nevf`QR&6crgqEz6lSgCF|m}@ z$j!Aq6S@8-tZ3n1VDUT_EclRo`SPW-qJp#=tqcc8xFp`$7Dmgw`T}7uIjTN)G`T38 zXa~p>vY(T(H&gFdb6cejM=zw>y#bP*E}&fAvx1Y(@aEnum@0)2 z^07-cr!tgZf8UOtJeUPvoX#yJ-6g%Kb&qjB)a{c1H+clcPE}$@G~F*yhtfbyynT z%%lAei~8?(4u(Hf7?Nzk3|0ETB{*)d|0oJFpngu0OIWb8SrbBhYK&=)?BM9b4f#Hed=1i;l><_`Mc( zxhax{qR;yxtBs~)Aia`+dmXL<2v|4~+>*a{@9rG~(hVtc3LLseHA$e~6U6LR>%O8a zEjnVHznnPnKwbGMgL}kp`4n4hD5@WAIDCf07sLZ3nyX|+ZA}oC7Q6HTNl$CL120>J_ z6>YYxO-1Fqo%Cf2_&Nm9NG*p9TksVu>;NheWXhxVb)ibrho36QhOvx5x(sI(QWzv# z@?e`4j9le`Qb4tf0k^u~9QQjwc z8|V!Ol_QI%5;9z&(2=Ms=2;tWwVRk&5T12St`XTCR2Po&qiHhPsM+YG;G9KRy2)dXc zJJZbGfqf{isv^hAOCC(!D!Jk*udVQ0QY}8dw6YROMCoKBFIG+lkGe*1Ga@C0w(r9L z325JEz3-01AM0NmeM9(>dwBaeL#z-GS}4YWQ?cD%2bovU3>YM~6SR(?d*DW(2i^lz zeCi`(AhKMCZ}+|*e|VSo&;qLvH)%M)|8@Fo>#_|ky2~Tx_#w@a+>IgJ2jG3?C- zKJXigjPgfLOG3$03>06P>!`P6r%Y1H-Uqwd-b8YTaa587KC^x>Wo4C=N|ue^f7@&W z5yu$^^ow99gn5aEv8V5|Go&YS)vh<4&|^WEJRgeN0$VB2iQRJ!>!{L<$A8c#6Y6~b z0_H)A2GA$!i&k9`cr;Q;(zWqz@OX?S_IhR4Z55t3I;h7j%PD}oAjV)Wm5Fuo!ln@H zTFQ<*hc(|)W)T*euxz-(01qc&Ov1+m@-D)(zVjGjX9phxh{(0gN*oVz!YzMqz4jLq zXeYn(Fx);0P_^4iN}Fib%uY|6NUM&t7J5a`%BGVOFRLd^ORg+0M~i4=irY{!n0|te zj!sW=VY+`Dwz+pV@T$YZhXAp_^Bwf|gny!}BXbbtDFBUAegZT8XUp&jKqWB{}&Y4Fq2N49zBrf z7;7Xo6|2uFRUNB1ol3E%3UsGD++6g3^y(FK&e>ktRE3TB^__*7)(@nNtEbh~-=hiz z7Yjk}sz6hbh`fP7S65e#8v%quSro4;nIuufir+;Pv&B;hAvpYicKo7GEL7Xbhy#}Z zv?SW@6$%;aatne57!ePpzxX1Lh7RpFVIiP1V%C{?y5aaAaM_oo((=iDuwEbi&QG7Q z=gZvJKN~cjf8b@qI#_IM{HFK8JnWt&IbjL6@vAIjJe5xgApm%_bwmBGg=jZ+&n`VO zKH%I4Te0@E%k~|k$4DP=fEZs&a z-O$U_(pF5M>3xHW<#)0+NJU9CqKL(jfM}@0$)L32EcHNI_7%;aZ^}G4v%*Ki8RbjI%fswnB!I^qubS1 zpqUDFE{o1jsw!dIRtH@zx#o#-eTa{48v3a)*JqH>j4G*=BUHZBY`yZ&|S$Mq8e;*5P6sPjK&Ucii z>-^A0Mc{*(Nol@~1}#9qUS5uL#bXBObK;{ZBd3oM`1 zLADPN>agxR%wYENME?>*IW0CfIQqa{8=zCJn)oh6Y7La2Q@8s2AC%Q`*Ywbm&$gw) zML6iRcyT`&2M5RJ2{;Vu&=53N3nd7If4N%Fo5;j|fPe(BK+VLXuY_(i5_HH5%F6nQ z7Z;=Gf~36ALgOsz?3b0T^D`Hgm%4@rp*XbBU}Il)|6|Vy$T<_k2_*~+ui5FKx4yk9 zgkKyH{rTym-fKr$;HPu{{4~`cnizhvP_J*31q}^prgBeW`SJrWZZ$V^wcWs&&Dz(z zoPG(J7r!Ke0a;#I50850ZtMx*89*qD`S^!FCTA@t#zB`@90;}kK0j(#aB||t$H$MD zh@9Jb_r&fQ-bq4g5cmuuiDifw>LnRiO4)#xc=eBCHm|s5H1`89SgZvfq5KsX?f$tI z|I<>Q3aut+!-OUoalwt$jYI+Q-Kzi}-9Q9e>WxPxWcMIp$hm;SP3#}H)VE95B@KNv zt@O24Re5Jld1roHexTA89sFK3CL29Ha+v}mFrbTkC>U#54-nSZX+(8QDb{pkz-cjO zIran2MD7}&Qk}!r_iK!&UOn8GCIgaJuvgFF|Ht2g;-rNTRU$aq*#&HfKm8qmg90uT zFqB4LS&)lq(f8xF5T$44lTHVGsxq}o0u_Kl5{ajlvW=o0pi%Q!P2Ud8a`pqCaP@(X z8V8hwgjKy8{6}tIY%?v#OSOIhpwixKz|JL+xBZK!kAb6miMM3(9&|JduBWe10?iTX zAL1N3mzV0SWs#g06HQu!?bg}Z?3Zhcg$YJT1~nEKuVeWPsX$g?6QV{uOy!XpVp|(0 zb@TEdiDAvn&0V(Fq4;1@9I0+<`c$ft6A7`GgAzp5g1MkpNolEKU#cFdX{Wh~NnBgt zX(1>n7bVZsotY~Y&0ZUfUoM6N|I_2ES7{AE8oxlheDt-Ci{o6I>7a=E2^36S3+bfy zna1`Li4A|d)!~5Y>-Wy54{gzIND78NQ-?s{GT=SO6d16}{zW?AB;!Bqt@IYcbZ%D! zsK9dHg8afl8Mc(@tNxEY+q+kuEQDLR%>Ku-D-9jA9XC;tM>~rKLj!8cm z;Jdsym-pKN0^B87EO-(d0uuGIc&{2)K-Lmo;HvWx_$4+kH*4{*5Ezg42J_XrHhLee z+HN@|rGDByw)HRDP!)FHoz)LHa$@+D!gnMk=XCLpz&l3osgaefI@-N%`%Wf3f^=fij*`UQ6 z%h$S!Mw`43w>bWad2z`NOL@rd-{XAdGN}p!zts8V?=SWFDU-Ixq>7`nwY}p$+B4Tm zV22&Jo{_-6&!$r!i-XzuKfFnR&QO*42cUNOvpn9W=+zYT#=Eu@-Frz~%MsW|GpD=$ z1Un=*UYa0{|8d*Kw};NqKBx&Ds>*-nn97y?HJ7Tw+%j3PaDb*j@nP(Mm2FQ}e?pL7 zcAfVg)!%OeLHouKxb+p%=?~o?e}bPovbUKIJmb9JWflyhqc` zEw9%75(I}abT<^*Cx-P4F0k)eSTFb2?%(aJt*xtbfuYFXNA`CBDE|MK@BGKkRpq3P zFg}g96xQ()~iUGYZX z`*7ZQ76TmH@uM_?_a+(WtO8@7ND~lL83PtjG)TV$o_`wh(7~F93+xAp-1GZ4kYE1g z=KtS+Ir=-Y(WEtVUB;%>%Ts>^HYEQTW`0G*bqF~ZC}>LxuLHnsDu$qvn9HCVW=0Pm zrae9Q2KFIqA%*`rr4QLkZ~yxpu)?Jo*obh~p?%sZ@?bX%+)$;v1K7YHhCpkuE-m8L z|MZCehL>OPiJ6nb|GJHXLjSpq?%dAOfBr(}QQ@O-a5mGAFOv+H|24?~7re!|{l6df zzYn~shx?yv&3$t%2n3jrua`%C3TQ}mFORy$c}6rXBcl%F=~~x3dFWY$GJBdBI;cEo z@#Cbx(VfD*W?TJGK)&!6NDtyDZgssPXa^iQD8Q9dbU6G>oGOaO+u;3{VWR^X01nfN z9gN&v6v<=Lx-j=!A)5}qIO`i8)@YV6#r|t28b^;l3aC%BM1gyEd-MMMJ_;L+xQwf;+L$Pd3rf1=IY~L?-~&#GpBd02;oE zo;2D5^$*}WEi-coWDY$EGA$xDBD4o+z_LUW)=lM~#1IuQNfynq(?J<~{b~J{p_-~Cfb~fB zVCFLr`~%W)oHj~GA`ZH*JDyxZt-zTD(3KcJ8#-RyPG^5J3uskngI+!dP|MQA6ue__ zI_8i+8MwLrG$y$57Fdgy23Gj)@0HTj(|ZhhTjoE%VWo4y6GdX!R705@w$)~N{ z!rWlY--oAj(Xc`Bq`Esmcc11{S7;m9e5Sa>mW0Uy(a;srWV(AV)O$cG936TUM;`AQ z91<6UI9F0+kw-%Qj)1+cos=GURcg3q^>fZ?abf5d|%Z?cyh<8QCU~gnH|K*De3tl!X zY)lMsOhe_dKPJRx|DYKi7tnw{v>z9I{67}Q{*(AuA$2xbHVcsm;#%(Yu5$nifx-5B zZCYzG^>AXMA&eN(HgBh!J&N?mW2}@)yR(wIV?1q{zj}TU_~c2?6h}@kzX%uXm8*Cj zos3Faj;O6>R7m(f-}3$!&B{)!uhM;4|Gy9*u+lL|v1?@pe8}jZSiNF24Pd+Is%^T^ zZ5szXFzUvoPn!FmoreF!F;iIC-n6t*lk$&3$&5$qu_)ea%?USNsTswjYvg&^x-oo9 zn^i_fY{V1 zJRsmd54yUo%YKHwPZEzgh{5tysYRC`1xC!DXZ0Pt%zl%eT-KMBYk#7+Zb#gr5QGw^<^AX}LJ+xGG6}5L<@H^g zQtX9{IK^2?^N{rY1b)P?>!hHZ0@e=*>ZY8S6s?qQGLAA<>Xz=L#bvN;BuM@ZnlG%| zp5I}~H3?d3Vfp>-tuohn3BirSg0vRxkq?QrfY{&`>rqF(WixyKybScuirda5z*?eu zs`{#PXd|xXb?w-X@~4JBR)*29CyM6o_La54LcbH`XxVi~tk<#crJl3h21OF!yM-`X z+`<$^Xp=PCrNDjw%!DXVJDDXAPj!A~GqMTlJ_z3;7{GL*8~-R105eG$6~8AYq}7XW zWvY@)#X|Wp?1z>q7@#$=!P~zLdg+3Y6Pb?947a%dAv+QvmJEKY<&2;)XY@;HakmhQ zh9;V>&X<1eYrzdix8zx@5p>H#n|UlxSw|C&v3H!FRdChhuu#Ie^eSuWN7O;O@XF^=*9BkQNc zB@LcVw--lJ-rma|>JGTR0Q!HIncp2dTzWJ~iav?*#t#e5EYxoPScqoi)?X}u__S@^ zD>UP1c1})mYU)*ghO(NPk+;#VpD07c!Q?ee0h@820o3oVCE(32d1SZc|C37n;XEpl zn7g?tH77$C(XQi!4a~eDI)lHJIp5 zNhoG0ISgj3_0;a$e0)B?E@&M6QzSl0-gG|u>stXwOVygOsTxsm^FxwXPU;`V!cfs% z?Q}uygcxw1zOgPT3r|-vZ0o+b8r;0mfNDq8<^sZ0m}z-zxCf_&jXpU*0KR?R7i(d8H*i`-|LzRGg(Ob%2wBcIv7)tn-)bM6MEMLLW@Tk3d%NTc~6e3RGn0v z*L7lLQb9d;C8nMilN?JFn&GCQLuoxi!r50)$qIW_B{x}vr1Z#N zl)Kfhk!5^`V$h#HNSZRjNSPi=frt! zd8tlveG@ea?C0WeBR}RIQQtCh9IPUd0l>u`?FX^_REYm>NSE!@!z?UPmGqoD0*bTkiHNxrhq- zBP|*eIk_05_W%Tlgmno29^cN|B_ZINdcp@H3X?dm6Bj^G#LqYBqL&#(=gG4YJHR0L z>JN~8Zr==T?w!Y|q-(HinOcCY zNwyE^@gk$}qUO6z_EK3Z+9kDwcjiB!euMF$pB5N$4USJ$Iy$t3ssdsXr0T@=CM1*> z19WCouS{SjgFNO6pMEDUQ;Zagd2ufzq7Un=LMJULUr+t^=eE|YTZa99D zV$8~V8s&xtmjco>wpm>M6k^$kT-PqVLas9=8Jo!pLoJm=kf9QgwmW>OvjzXFQ1@5s zgRm|za$<@maTrEJOV4wZikZqLA9(-moD3`?O5wwHpKZAVTn0X% z(Je>+Bh|_{dKfNg>+0-IHQ@|41X>scWFN#Srr1Q*pm49sT6l8qEoBNF$vR`4#>KuM z0a@A0r4)cHwF=xjuCW~;zlJW3E-Nk~^v(?}Zd^#zpUrN7x%;R2ZSzC!Wo!?2GErJ| z5`gDUJ*@5l5bAEbziB17n^pjN+w~?b8I>jMW`#o>u~{UGD2`jccBY<5Xmczb6P<#F zQ1=yyN?!c-U=Sin{hK0yHSl_m-)-Xc)Ol^@Uu;QY{joGhxal!{R8$~v&SJ1kKqjkA z5re$)^ZJmfCaIJ!&iVx~ydgYp{G14hL9(OKf~Td1AqPMwq4AR48P6kU~gfyOqM zS-)d`ioDYEYBv?zMlZwTPA9h=mZ}VJVL4b_NHqcsf6mld6c+-aUPZsAj*l^m%Yv=n zYjb}QZVe<}EWtPuytqRv19@_~e{?+qb-XMWDq+diFy`bd^;9GltNY>e0p#WP0 zB~91!^bZ&N$8tkEz+k%;VD7=jb^*fqc@OBLTHcyBF@1y{eo(Ic!rhf0dBPa}?{*O% zn0-txc0DkaHcIZsZjRz(*_dU|a0HmHXkP%79p3Taf(l zZk_SR_b@i=Z)gt1OF%xF$$&ghf9n%QQ-?p=&}luYMn%vUd~N;x1ouQ>hnIkXy=MZT zO~H5;F9-4z=%cD^sA9;ap%cSWN`-e?_ahqbI<`WrVe#bT2YzBmNJ?_4s$Dm>p*N_G zY2HQ=zPqs75t}b6Z4o>l+%8Ftz>=w!ZaF|i>u8b6X=0E)$Hm9TjSdNe%V|ktX~|+k zWqb6sYD2Y)VWA^;B8ZI?85x`g29IW*JpJJO{{HFq_h+X8`&BkBB1ggZh4}XeMOZ~d zzSw<~O?F-Q{cd(*&8zLVpU1NdYyMX8bGWwiW-N_Ktuj%`U?t0HtfW6Z6^^$ZBU8lP zD1=t2pMK4+Q#Hx^i}M-NVT;rElVPf@7F}{*VjaZ97*xOKxrM(w4)kB1xyI35?)pjG zVejaU-s;j6d$>Vb&O|dW3;|yf7L$l9EQ8#MiGaLI@Y9HcFLaTlRaQ%PMIHr8k^4To z5-<`aK7Y5YP;B^_-a#OyPVU#EKvE*|-gobia(CEu(*kDHdYWejKAG01x-KB?A@79FJUsqH4vh>yFQqn?a%6(yt_Ze}6>OrTu`trnhL%uzD?_^P^;_$+C?i~ddnG~hM*#xahXgVX zDHs=siI~DjCDav*dB0mf7WahUS}gL)x8&5|L=Wb8lz+VLq$g|9FP~86`&#YDywFuW zt(3!nDI0<-tQHahc>x{6l9dv{QbcJcR1b19FUULzVk|$)LBBG$Ix6X#LCp?{o`=l& zQJw98tU~Q=EqA6!6UHKiL|O|;fUg3&F@}=+qBmE|3YX^w>|fwRV5&^FVB(Js+3*^u zkX7V2O~mtff@fRZuG3AYMpl#0u(@r-@Rt`ld?5PWD0t)IcQ!*wIKEyvv_h|7Zp7gB z77?Pv`^4K>lrI$8 zBmV9OPx-x?jl=`usMbAcue5Ta2(P*4p%Y!Wql$&tBs|-}VmF-vWTPV+E`IT;sO~dO zqBO~H$=xfFv#B!Bn|Q^nc%K_hcw#9lYA+JYup5H)81d_R#~c@!7-io;h5q3!CO@sG?N)L@Xf=7IyLoUG(`2abs4gp5_hQJv_{c zT{}lduIE72N@!hn$W#F?wb=z;6uqw^C#j|2Xi2a~$F;!o}^?m|g83M}hgzfYyaG@8FK!i9;S zD8zJOlTc6cybgc(;-Ju#0k&~}5$m)m_A0Hf04aki3I(^=!4GFMP@KY!+N>15{YVpV z-_Fk^9#~mA3%<} zqm@q?Ehm_tsx3uoMZj&u65}BNhKby@w})$DVzeZ0&PB=R&lq?f`el``?H>()1^C6V zD$tJ5Dv}ortht}i9&Ie-rFTj|V+>U@s_nyWM9O@ zE-UOBz#vRo2 zi=G_qB*u`i76NCeC#mopEH!mo6Jjl}qGii(gkMBk%q%mmCOVMpR?$F4Z zQ6vz{fHnyrQjJT50k=>G?o5<6TIvdv9(b`KmVaFtc-TXio%FWXQm<>*9SS-p_K#23 zoWOjJLgEq1cR%m!;M*q+Qr?@lA83B>Jo(89OHOeVUzBM*ez~ZLV4?64z?F+s?$j*T zEj8q!NO!Q8Em#~!&|E*()^aWjicEvYp1Bff)<4DHq?ZbadK=FeR{EIYN9b==j3yp8 zt77bjg%2!QOrm?5ie`D#J0z9Rqu6rp+LX+1G+k zZT$8L>ir&Np%#}UDYAiA-Z(4P18H@Q$V^=-(XHTl@H%Fx0&rSbNe}JI5%f}Bkr4VZ z(pbj)35TBcT4`zN*!ri}SunR*fZv)?%UW%Uk+QOaTUlF!=&RO1y(7ySmQcUHsz{7z zRmz)W!R#TSU+8L2jJy1L3sxif(x00>Samqk_hw&tdb~#UI*%AX{C-wk%%oFk)Tk(A z+?yfTRJ8Njf9sCVcF3AvO%BW*LO>vY`g3dVlXEp;WhlliDxD7in=HmiPw`_G5Sb0AM=7j}MKF{>Wty4sXMMDUr9R#-h=&9rHJdRm> z`&h$0DOe%4E~$tcKLV1!QTVb4>O4IifAIO~ z^O8aq^jZ5PVuQ2ap=vQZY$NQ$940B%Ezh9vQi8&s*=cZ|NT4I=sRTYQB=9Wki+L`% zv1uDh;Pp0y>ax+6m`{q?7DT(c)71kY+qZ1rldgM;YBeNbL*h$*QJpLNoa=L;|KqE1ne0i+s5M~UHAvJ{v4Wj78L7%`2NQF56r5Md;P zzin2WXmN2-_9}WhA#YGR;ZS~U<^H~}Q}?lUJOZ&;=yZg8`vDC8@`iE7noOptFrXI6 zw)R4VtZI}Kks|0>pS(SmERKdWM>plp4}cx!vmpzv@ego>@Qo1;9GDofbr&5L^7~0#~nESP~;JJNg^s(5@kb2A#!RCHG>+RAvPx#V4)^{y3A@Bf$Xw zI!y-nz8!xDz*w+8)mUD}63snXVdQ@G^p&0A)_XVtAGYQ^A%N*+{5WI@%hCJ^VPJxv zn={!s*Ho9mQel58*P@KnEH^<+unH7b=WA*9q?^=@0sR$XQKh5u@hpV*vP-+vK`x!a zn0tc70q!#9#D0Sd`oX03Kuja0p_HW$!PR`pW-FTWC!JzJXIpHM;P{mHbV8rPhF2`l zbM%#=2!m`kc2iQ$L7EEfqT@FUr60v8sIk7A6@_;)nYfndXn~Y}k1U=xRaP{s-SRpPA|qSj$L_M?<{j0;WP%Fk_^`o)4zDncF^TUCz{hmLDelS` za40x{-_Ih+U!3+7%fh8@bLhyBo$pg4OJMduWn-6$LU4kz65gg?OHqT5vNiX;>XSG~-ce=(r#cw@Y0hiT!UcA7ZePOj;0 zmIVX(h8~0BbNN&P%hHcb27|{9!IcCjCL)W4^tNeSCgTAVno(Dd?WwDrgv#A4Ulnqh z^o2zp;On#)M`mbfHpsaRF#xlZbkSMrI&CZXrn_?*!nG@gp|`X+UUm+bKF?GSapYZ>A*Z@2KCQGauX4Bn+;$*& zoP8s_a$L#EWgj%Y-+q zi+bisa3Ujkk24i?LU#94`Royf;k+MsZr^7jm8H~}X&lNTZSKv_MXx3vU6AeeV>D(} zXNcb-E5>w?g`haKqc&H<3k0rY-fI;0VWs%Qk1^|O+I=##or`4H>grw$91=voop*2> z-!pBw<5<@3_2ChaQ(vvii+BZElNeH+7nSU)RVV4=*cvY|kc!;OUlfKcgiX9IofE^F z*u<9ZDRX^PME)o!)PMmWmaB!D54m}SKN4|e>MOM~b7{|kR`11=NfIpY8w_%Wiq)7# z5@pgWy;X@LuXaj*&df5I{Hk&Rm#yvck4xVO{N?_jz1#|s>qEC~61!pRi-jd&|4ptT zGgL(JH=(4IjL@%!;1nvfzT`Y^RQc_K9CB6`xHVuijj>Jbzm-pG(TKxU`gYSvsr>oYaP&pdHrKO@~+1S{Wq+W%GKH<4hSX=Jj~aTu0SS|4?9d&spv~&e={k@Oa^4W zhu(cY{gtTdCb4WENKGRk*urHLBuXgFlDR&IORuPno8($RszK&rcmFXhKdXss&@&Ua z!hAZFGbTJ(imz6^8863#O;2+u^7Jqy0W3esM6ww~cVV-hzqazgaJZ2_u$ts2uT0jH z{i`cu@d~+H=S^e-ZVXmS!VPHA?b38rbWSN6E!7WPOny-~I=V?=4dS7=bjR&DKh2lZ z1$Fk{^`mTf;DvVl0rn51)k*J@ll*4A!Qee`~qpwzPD-`y#wNLC zAozt~7@MIA>=1(Oc)TQ6X$2f8+Y{iFJw37D7?paEQ1L57GDl)pM=u)ezG3AehR%AL zBp2U4H(%O}U-T${{1^*ambYy`L+xaITUybz=2wWi(TUTvs!~tVJcB#ZeQF)JsmD^WZRu%%aTRj>&Ij{zhTn;p+Gt} z#3um1l=9w>o_CdZFsFh$88mQocp#2+y^M-WpL>-5O$kZb8g1F0;!er*ADw`B9w5Ph zy!2(~vLSH9@3%R~xi_&N6+B`c<;l50I`RBvXLMyL^qVeI-cl!}Fcu{vx4|+tiKsz0 zb^y1rF)K0SBXK$_hZ4Q_yoJ&`t^@D zTAuLr0EyZjI5EPpKsNC5P-Hu_(7BgEKADkdIB=vC7G9w3@dT?3G=QO5t>+| z;e~=Cu@R6QUccugcrde0=UO(?Y9LRFE+IjT!g-fS#|k{*y1g7Wkt>_-co>h~Vx?am z=@+vP4!XR42d-itFDx@10|$lz4eA_jOuBs0vT18F55!wi5c`(mg=tG1er5Xf2}Wk! zcqx?8;s|#jcFN5o)PhX2s3L^3N#x$p)N8BjSzp561~wuSOCDT23E_M~ZKS(e>s(_E zg|!8Be&>0I`#e^=g!TXQ4NPK%gtiYDsdm{ z+Tqq##ulxJ-!+oiAi7iH1fxO8-T#NJw~VSX?6yGJba!`1cXy|BNp2bhq`MoWK@g-v z5R?w-?v(D37LX3Me2^i~RbxCdIY#+}WqDMRe#bY8JReq#$HH zx41B4D7J(ds`4*qsLbm6HsF82_A*5N|I@!yLZDd`1TI1h&yLXE>3LMle`kSqLZ)28dL#(M zUsgwcvVI^&g?Evx&kPrsNM_fI4@YrI`sxu40UaH$yWVb6Z+qhB`nyOa&8oBXY{k3K zh}O0il?8TvS-NDMKUl5A>oDQMu%hk}H4jTB(DyOt**)2*wzJv1F5QjNWikQ9TE>)-9JHbe0mlFg`M(Ic z$a{oOxXNhC{A5-MlZ9I@xg$7hA-mb-Iora%`G| zLd(UL$>#h&UVt~5V*tjoCI5KzA0qef15gBLk_b%^tJWMl-6GRblYvRw?`Bkz?_d#1 zKATCwS$>v^slyDSmjf%vw(t_a{$Oej56ig*aL+r-_zw5sh35gHb7_Lcs%l^u}>Q^qfH~_o+qqNMoeH$r1V!8C0np^n)B;eG7m=u6BGt6pjmK-D{@R z21Kp$Q1xT0P7dX){@6G;SR^D$B?a~&zho$cu-u_@2_lo7H)U_@c!0M|h7t{L6iboC8DN>@Or#~_;D4yt2ocH*fOS{nG z+3{Xf49oVMk#UDF+0Q)Ege=AqI^nepE_8N`fRQrKyNfLfdjzp%w7&Pq0zwV@vU1T_ z1a~5I<$Gs)`sgAU;U#dSJ{j`fQ7I4HON1_11<!gzOp&h@| zrpu`}3wWgdh(WFuAn&ES7AAUumepeIY4>~9Vk_(SA=816MPcS!5d#e7LnQ?=Q#}lN z)w-Vjlqdv8sl3-KI_*7^4g5t19(~-ezyeZZ+!nwIfNE`5HhES0A8`a=TK`^V@SL{B z%gHlFBC5|)UDj>p+}UX&vpOHsG`*+y(I3G-gl8hIu5K#V92!N^WpBmI@~VhxPIx#D zbU#hM?&{Wn?~~E1a_P>UxHqTZa7qiduWkv(w2A0{HDBa^*+8(RxElL6I094y%Y~#V_~(ukPab;C-j)1R(2v97_bqBkmFhPL<8P zK&#gKvkGPfku2RUczs_6L8BC(WrmNYX1E-do1yLVc33g;aw%6PHjZmV0ND?J)b|HI zOp>%hM=1mDn@=u)^dL_Z8v;AD+Wc!7v9TzbzxKFj8WP$B5xM$r@A}#Zb&#;xfnxHf%Hyf?g zL3TC67~+vHJDoZooj)tDCj)P@(zl&%6d42EI45AvA+i zSJ7t0`tL=S2x8x=u)542IQVXOzWsD77W>27cArw2Ty)iwIp+7>Q&o`J@CdJhfTyN^ zqq2-ZCE2RxR(3l=VoyQC=P9N~I=v7xI;6UT<%YP&F8p*F%sU4oY?)?i-M&v0cQ|| zyh9W`NeTKo;EKp)>;+cYo3cnn);GvE2nUhm%^0XWSZ;*eQ-GR%^EF|eH)sc4=>N;U zBuo}30qhG7UEU!8xF(vzQK=z^-Yp)`(>{*m$ntS-r^YI%%rCXQ7KE0j1we`%m=G>b zaW0h8^Ail*vAyxn7h#|_w2BoI0|*W6|And*h6Irq6u{s9lawT|HbbLPG0@l)zW&aiewom4=peezcfe$O#@cU24nlE>Nq&{z@wRWK@2;Nig#eRA~^Z>R{M14cnQ1 z_&_5CwpPpgmb#!0_KCH@ASsg*cL^iaq+e`0|> z{i)}C0A<2%q4I9j6Z$O$P)*~?YzzN>09Aj_I;QdCRkIp9H@c38i{hUjhcxiBV_<|w ztwRSsP7Ho_*i&fTD*(Yk5Zuo~K)yVEcn|sGFK2|!Ci0hW4xt9LtFhcf0Ayi$bxn&I zJv$Z7{e1khCr&67m?`i12p~=l0C_5bW9NFCS`AHR9@tR>u_=_Z_OVt{>Y~OeO}9)) z1BIycjc5(JUUH${^)J(jkScF+9_ivaS}ASQd(B!X%g1|5ZrfY}$G7|qFklWG-&H<+ ze11S3jmNqA`^+#wgNXkyc*5PBzxIdQ*wbYM~;cLilyg?OMfR)Us|aa*vNfgu|3#bZY!3itZjVV=5F`4oB9 zHN);5et60(F1zPhQC`XGeT4hiB3T+?7JIgZ)f?cPL|PHd*$FzFP;!;FM4as8Oq{Cl z){dXTwL4$J1)n`xVJHW@+^tcluOKhCcS>-Cv&-WTU~|%C-EeStXOK)z=A05QLup{E=0j6~ z^zQHWBGq01#261b>{YGjzYc3DNy{pY`6Su|w> zI_~A$gf3xRlI}g;ZFY(;q_k|bP3V~JhSC;YyU9i_$YJ!>xfIEJY1_{eHT&FcC7*V3 zg4o4`yYNOIj!EU6pl0}B5ULcfm=xa~vFZ#xbS!tpsT%a@A~x*%9u)`Qt)S@zNz&k7 za69>eY_!P<{St!*iI>x~ndDLY{T74SF}^vU^C8qPIWHAUdcn{bUPiI+g>!8+lCv!m zLK@1C|F@z1OE?KyTbpf4;nVLdWM`8Osb!Bc%gW2g_DgMVZB5qMYVD!sPeJ&%eF;iv zT0l|>O-PV<1)R`Sh|p3%SLX6iXH9LI8Z7H_g7tB&C)4AwA5@r27JRdoZt8K?T}VIq z>-;mhY}>D((Wz2fi!wX0$0Hm26+eli%UfyDn#bNH@_LPu*c=r;)AK;yhF8c6W1nV2 z7C9)X2`6n(_w@}U_6!MQRA{eeI89eg7@~$YV8aoVsHH1)B*@wEt}Kp2yvf7@SP-e+ zN@7PxM@PlSvnCf%@*;RY6PTJL^L%;<;$#Ak(Xc4M<$#8!P&VLfcdIEu;uu?#Uy?ON zHv(G$;r%J@XALwG!AZWN+h24M6%24?v0VcA38aF6SA&Vo2)9+g2NwA*@+TMrndzG~ zFd-X;jK>5E&%l40417W`p60%#E}O6-1ZYKvZwNxZ*y76O8@Kxkc%M<~DUw3ydp+!G zOtxh)9?Y-fv@xO`Pdfo3tJ`8_ZE`9(5p#AyHw-g_$kWZo-cbp;igDRRGAg>&m5-)~XwDq5LN=la}L@PM|jBQK%;K|69=GZUot z0t+5dkDa0}-)qo#reXR(&Q?mN z-%0Uy8fCt3%7jZ+3s7p^Tt!<}CO??IqF8eD7!&7n=*^${s2t!(dQY%vW=38=V;Bp_ zqsTy3wC6h?{U+0oaqr-i4~;L}Z3SOUaJF$6r$dX9mY+q`Sq-p({Ah4aFlhb2d80VR z{2<~JeA|*Vax240=-t#@*K^r43kEOLClMATng|j@ze6~(+(#44Q0-*G+EX}CYT=R6 z>tDD$5vYKggY2SB#r^;L0qr%r?R8CS=rN1@xNOr~2`!2@7iVN-+$sP>5W(x+!q-jC zWJaU^UKXc7BDm%*#2TUR3Xg?BK&Ry5(!9(1Ooj;}z~R8#6Z5%-UKSM@;t8;g zs7}ll2~!QoX_Y+LH*Tmhihdif6u7nbBO=!3$yCxP_E@}1=DXZ8z-pbYwL`XgxSy;N z0Xd=sCSJNBS=;{~Q z*Zcp}!%)UIvv-!FEtRuT{oQ_ZziR$qp-b-ev&L{*Ukbv&SEbGeea1U0#_R6KVteLz z4;UM>ulzkhd*N70#(!e`hCT|HWlASrX|4m4=6|D6ruF?a>E z@TcU6uJHtRTe+tOrxc$6e;q~O7b8pvv;_*BK?!4$4CG3 z@TP!=Yjh++;BIWI)1?op!3eGz4ReJ`R`F9l)6_Gtq1v*U0z|RAz$`Gr$TP+@*_PqsY)zzIoF+VxPZ&+H7tFd07EVc{1B@^2DEt`(T z;8`%Q0G_iwZelH#cKOPq9`NNv=h*|*A7aS*-wI-io2PM;Gf1}*jMX1AJF6W#yf`Lx zd5?c&5c*{3_`lzn%;A^6Jb+jc85ZQ$WK)?c;$6*UnsA(qdG$9l^`{PIkOk@Gc#XAm za+pt}TF(P5?Uta^#?l}~jZnwCGRL8okF3`jH@mOm{O?^N7qq4&@NLh#5h$Xz;2sK3 zqk=W`noJ)Sz6H}0pL?IN!5Csjj5Wl&3QG#IzR_NrfsVVTp>U@eE<#(EW$yl zw{Pj5pC5qir(e+|m3lP=B?A%73L5F~e)ny1@x+MepQhV2-4cMNaQwV*>KWqyd%0#m zuJndxiKi)}$HT@hV30{=*40UAA1CyCy7#btKch#F2-rJ1Uw*s(FmBQoie@!IxAuCr z^;lkiz9UfU6j_QcBBQt;8+1D#dNQg|o&54((Ujt@ay0Y#wbA3#%)3DX?L`Got{*+^ zzXqOfBj3M|QPW+T26|Un;W%67jqhQke|&9UJs6Q=)L=Hehmq3mB7<@E5y314y>;CE zj3dyt9xH9087$wi{o$=L3U6@*$jLpmFCJ9pbJSFdy*F&dB>fq`^3#E3oLyStu#uET zyHU_L!_KH8ihvlAm;BBBap2~SM-V$Hr077dK0xYrqC!H{7%zr+pB#ZyFc ze}@jg_-JKoYs;XkIuh{furp}?b7Xbkldl#stKp+{1x5~{kkX{^_UooIbT5Nc#FXm* z#qh^0sMcWA6uBPRd~ag&G2~B!ChU2uX|*1yinKBKime%2qvU|C%d1_Q_y4*nOghD` zPuHuOhyk&|`&kdE4^O41{}GT}jxoe}IT)hj?d&~{i5+|? zX}Fb+xZS2ly?^>>FcE<`^M7St~1_d zy&y(ZQb2|LGI+2}?2?o249d#gR-e-ARj`IS2!h=q3D*A^VpgGO(wpYjbT0>;gLq%t zsMG+EzW*^&9zD!HQh{F995#;GAjZOb|K2%y)POaxQi|x3&+lp4YN^$E;%%VXdvG#^ zWga5JF5ko+4mAhS0p^Q|raHWR-+F-S>JZ0PuXXMw$Asir*8oX-Q@p?;j-G?Lvi``3 zC1xe9VXj{9vL*B0-!oq!-Xd-2Z)H#0xRtsX;iSmly}j@xT`W&ekOkF;qoD^ax? zw7PW@W25rF@QoBjH$ATA7q!Is(H&%M6ox;K93eID!yl_Cv1be7NhAF6sAm-8&nvS7 z5B0#selcaGSBq@d4XfTm{!oT6UJSLu1|tMo6qb@W)y?Wl-S&^y%?mQI2be;m4xdW8w(W}08zru zTFb$r#Oyk~l+L%08XHs*3zqEQy49ty1i+8*zu!JR8VP>Qr-xfaz{ei{IwS=b%^cm-ZmjJdzV2?3T@n*u8sqGDn+XB+hT z`pfmd%Vb%(gg!k0cNG#h0z@=epXc)P=`MC`*#kzauT2>G&Wx2903JEZtt&1OxTzv( zFg;sjq*FpKe*t;eE!4eR3V4d7++2K}Xs}-H5@2uAI(?AIucfKcXyK%l$D23S8)k$O zpkhBPTzLZ1- z$3lt*^#?H_mHeN2uQq$+F=V(#*^wacWpcI+pmn?H8xg!)gD~k{O*5r3U0BdZk1oJg zmL?$9vLEn-4fF*A5z5h>%aA3R4fc%JMlJ4)nY?!If$*hZ*-VZaQ^0@LKg)xQdJUJV6&l#R9*R0tRQ9|x zuU;n11-!$7HhQykns&U$ z8Sq^Zmjz!ORb*Zvlk#^%u-Egiv+*Zr;P(lwIS8{xh_Egag|5(is4&_rjkvrx5OabL z2hdAFsK5VIBBy`1zBAE!ImZbLVy9a#P@BIM0)FfNQ`$1G718qTTLWcQd6V0V(~PsO zX_jFrX*0=gk>&2k&M_KNJr!L~ijPQyyEt^Kf=p6lN& z1{3Js?lOK}e6%0$(V&P#C&S*e3XSy117L9`HCwu>i)qM6P z^?n_;VNPx{yntfUh})DpMnz3{+aR7eKc|!{tUFq`PK=iTPHVVR2_iQ-WDsAb=H%31 zp(H0GbNK#J?(s!igROi2{58Oz2)G)2Kul2t+A&Qm#un+ncU5XCl9{NA13KjTset3= zL$fg*@Fu5`NsRi%L&Zv&+LG#9U?IA=xNHSIT%79rieA#mGo{P3Ro|EZD=|=Ny1|&H zvcpS(8AHx@7gn)Rhu#t?wyfJ$AUJ0UOm>>W-V6vY{M@$Tpwxm)Xz~n=6P*15flxe4`h@UUQfE4)L*C;l(!D$|k{1SPMN`YW6Q23fgC^=2h$UVA zv;;>7!3;Vno{BC*>D^*t?jT@wRCXju(1(sZet|I4|M$&wzq)&0mWY1e)||;Owx9t4UdnF@fKwzYYE^P zo2Y77v3XaExgs-Mi^Yx$cpRiKG8I-kcfT9MR}GK_{5&4GsbWn4B+Z2K1ANnNnw3~W-BKA;4B?sD43moA8nOju$Cr2(NZKY z!?HBG{qvZKFiy7FP6o+FGei2SR>GIu`T9Kw!LhX8N8e6MwktD)R4NXxKlMaQcU>VL zN79NMFq8ksq?`}&D6d0|x(AnNx)fx8eB5|7GAFWNA@wM${MZOE2l_=fcZeHRwd696 zDZsAEQVIy@wRKNS^9}RgXE@i`FLAX2O9+9nl8U03WEwVCS67zZkB25h1--zqjd~?m zkh4O|%tca_xBrMiRU~Qe!(avh7JD|+h=>PXR${!>cFHu6u)!jCs+=vL!ANIVKa;`~ zb9Ha^^j1XJvDCJ!)`$CCCeN79;ZGQ?iP_pT-q6_C_ma+voE|CZvy<6#LcTN3toH!f z0)-(iygchQmh9tQo%KSn+kli1pL2xAwpgcs*VWhg=k_UX;1xBlae}NRPYlf3>2RS{ z{j@BK&tuC+__kJ+2&G2a&BCSufj$`ojj zjfkrh?D*yWCIkzxb^{RebUVXy&+zX(Yuq<%gmAllvHu8Oz`}=Zibb$nlC~%yI30q7 zs;q1ZSMR_$&PuStmp9?hc4@xeUlhxgIAH2I^t<4PgK1}4tjBliO~VFzQ0s7Bax!)C zw}bW0P7~a{w|?gJ8hWMPK{k-@lKakpwY2_#t)q4xFsj%;cVBO<@H-Z5gsFA*@Qc5k z)CFS^W5dZxK%$H7V{L*NU0Ixl=H43ZB=@wuKE7Fk;! z+0=xO1he)jM4wSoQl|{2&v#jPt+45(8)lc`RPQpJ{gQ;K^F?#@2$q8jM?kSLc-@ti z6EZTDFykzWr=>>i{UKWr59=wZx-rFYRSch6cKk7>D9Re^N{N%hIA^S()s$*4pvG+!74ZE> z;Cfc+qKJqUAK%&N{35d2WYJYYO5RwDR!o6^K}b+32M#B8*(-d^Wv#e&aw&nR_vQ?n(4FfJSbdA)tr*C*3AFrZn=u+@y_2|nq|O)%AD{K+ zp7-gDRa8Pu--$<=Muls?Ie&-Mf|!WVY(v4a(ppZ!*9Xxf%r2C)sOH~qSDbCaENb}~-jo=nZ{ zkyKt6C5t;%zBN1aXIZ%18UENkPF1X&VSdPQum}2EZ9rex3`5_6n^22-ai*?Hd-rW9 z|I+B}NVv>k`_>r`(|ax=r8n`s$Y|URkJBahq4yq#|*}Xos7pr(*KndU{D>+tzK7 zR_hh@NV(kRyGOAh6J>w7rb6XVlU@mW6deliWoR>P?C9mk#ryWA@`w&R z7D@JaP_9FLi!YL0tU&d2D>N1aRju`ICdpl6?fH;DBnKO%y-^s3|Dp7$x>^3Oz{;R96Ok|XMIB#ko6FI)K9s`6k>tIH`jhTk4E3+u4=r;Nw%2FTwD%T z;p`V%aPlf|$pKl^L5Q#PO-VS8VPJhpmCsl9jwdYOtm*nwHb`+0{flC}!H=An66^Lb z1vF8m70XYLZ47LB(eQP-bV5h+wxG%1L%H82grZ}qj>976#wxUSARm1w%Wt6iDD##r z@ifu7$vcbtr-&K9>Yvb8ao>I@qiDdW@qvi7&nVP@(N!8Mst~{tov1{%jD$phZdNEM z(^UbR;!bmA@QM7?akT3qOdnr)aeb1b-T;?HFTCHVMlyYA3##Q;9Ee^4PLVZ}RGSJ4 z`fK+*7lp<66kk*N=SEC6cM*0uGaEFK3sjN!by0nF59aEEn#VeMO|BO}i3jEnm=np@ z)9p@Ho10EM9;$&*-q}hc5*T3x5TrZ=LA zU(r2~E#iYM{(MXGiQR;4+)6C*QFwi^`P2{#I1)Nelc0e?NMIBYIL#pwC;-WoqSAF5 z>o$7Q?EQ-gPz2O*sdfh5saG4|?m8@n+uoih27$NcYBiFY9`oF{?CpfT|G>707*l== ze-FD2XiE8S>zNu13<7YU84@D>C1EX@$XX+e3aL|g{Bxld)IXYcX(V* z@`(X;RUptPF+Q59T(G$3P2u~w7UV<<_)<)BS}7?zs82^&AF^3Xa9psUm*4EE)8j`m z!&usd^x=x4uWN70)Q;drbJoTOXL1(BvWDz?GmTd$SN#`JN-*}oDIr|_NE{xT!kev9 zcO&iLeFs}6xN68uS}2?%+e&N}HL`|GN{ou=%UA~>NgTFCLuj52gK{aIjECwMMe>f- zwCJbTcLg@xeJFHbn|?%8nAvxxz_!kP58bJKu!)E!^zi`TP3-W-6>`)vFvujd>JHS@ z(yB4*so=i)v9k2tn$vom)E@}Y0=8w>z1iFXwvXZ$42|-gN!VZ^t1e z2cNdJqMhnk_M3wb-iC_oQ*{NwpfN>!8r4;fjR%W&zJ2Gh#{yOMaYjkHzQc17;3fI|Tw7u3WoDv!B zi}I-fewBNaXH+vi0^DEdBI4uT9K`yGE=Ja%+6GDI&>V<1CFHV1JeaSrGsup{hor~? zdrtb-M@xznfi*-hzwY#o+Ca3 zlyix5XShR;$F8)K%*}XdB7!G>I}Njt;XsDu>;aRvAO;KiKp+^ohIcCv6n| z1)UzQ>>fKM{=(bexz`CB8q5vfypvob2SbgfPqValIIH!4`xLPi!#IJ#FperpRR-`=`tFzejI9j;) z7@_P9qHfvbb|qK(jXLSOflRz=#hBbE=uA29SExNyfOGktmvlQ zq{?j!^w9+6v{p8p+o$eFEh+SJ#vGf}Y7?6BM9x7!)maWn=;i!x-=X}Y&kmCI(~bIz z!noA-`lz`eYc!FuTvKFhdm>nrhh#g`SPkErtpdTmC5TP&C&&OPK~kg6PfZCxuuyc^ zfAl*Cy}G^2Nlz3x(FND@Plq-d)O<~_&*SMOM!zrq?y;&TdP1%cieO)@YrnuB;5W&Y zKdYl#DzFGjeiM1S?-P;=`V8J4A$4kqwwn}x)> zlhek~Sg3ZMnQ|SXriE>%;{N)p5p20-d_?&?+!@xG5ZtXiOAxp}M4}ygyiBzNipr;g zaZ4(u4XO!W9J(flb@%1?maOgBx|A@WyDt_T1~`1k(Y9u9%_L;|WN&xZfB#Q^7_{Yo zb-8;G&|==vlZ0!pdYPimVuTx;PRL{PLH6C(9ss0^>wUBXpRD4_wN_!b+K6&_m`w_@(z`+57Ta>I86Y!lY>u*eoe<9z%zaA9TQG7Gp* zMt*Zz?C^>Uo1K1hbI-U3kDK$0{`Nh@h8x9tnE7=&U|4dkE&>VEu7fBLs1)OgsEJ~u zlhJF9aruq3sAu522>c7nT*K|JVgI@kD?>**I(MFj#o#~wyuNdI)sLJ?fSCyWJ0Hv) zJf#>HMz3)AavYT!#*a0YpGrP8Wa>tnk>O=duO_4O$0C!}JOGyQ>#F1cFk=|ZzNRp? zfUTI{N^5Fcu;Xd+Fn_zd-E3-G{H-}R zI2U2piF@PY%Pa?>n?acX$n4#x`Aq2q^d<|aN>$hqSeUPl2j`=VXy&2ygiB(2{-Kw* zXrRuVT}%oTktLa0m##(;&sQb+I-oR@)IcvPJUu_?Ns?e;gWrJ)r@j({p~*}|j_OXB z9B$n7%gc>alf}Lz(*7;d|MmN*`3*k}02*uHKpiwzbsFRmkv(d0&F2pBInZ(`#GjmF z-CmcJBBHRRxN=$uhvTS);JDIGNmbfX*&%x1L%XOEB>viE+IaNlY)QfqKos#yEg0XuE5&w-(vw*!t~NzJB4mU>;{-Dj}35d zTUkl%>F?)ZZ7>>=t$r_E<%`86-T6DO>Ri`ek}(kwmALa@r7 z>jx*yNnSD1)IuB%)!VO9i}KaOpa~Ln(DUuWhl?5x0q+)1s2x z>LpRdw}^xSvu+MTUw~e_UsEbRS7?-)7dOj!hg;2b&3)U*DN83`H33_|`%PDJ05o5= zbwm^EjH&hSkhl^}jUzIGkj`-^7KbatpH#>=ojI`AV9*wIu&$6IejFI((FJ{oPr*We z#TRt@kX;m!$O~_vTmSPN{urklw+sn|Bb56$vxh~A{n!1?slToM87r4Nk!~}c&({)A zf2<}uhLRJNch8I!oWEX=QLho7++}scaNa@+o=64OZP9g(U=gGaLeH%+twpDOg;_{b zsAq*O-0D90GW4?B6Z}>jYU-F};4(DWHmG>>=Ht@jh32emLc-t|KN`;BfX}!(#$x{e z@RqUIhRt2@zuXnq%Iph+3Qv*v&$$F=!{hF47kjKTvX{XFNw?3xnN$l+-7vrz;d!ci z3T}sRk3vmMz{FmL(>-!Q-Fx=ore+nLd%8eCl!nSB=|?s|FQAV!{i?IfjbNyJ&Y z6}is0@m2hJprIWhChlb?$ChxlGjZ%vQ+@$cVRY9;L^eWtAvkOy1Z@v02kOW#SN_C0M#m|&@gPV6y(&&5RKtb zdbaQ9^*f^Z*H7Ckk+%*SHJ2!jX&BkRYln33=p#^<>Y{;q#1xR4=aHK!y}6Pt%r4xq&B!$ z1u8&CvJbEaZxltLB<#f{5o~T`R>2h*=*L-a^?##qGMgw80SdMfNoobRsn3h+zCQgA zYxK;24a@|oucZPMCLlGWK{=P$#&(j9_85|AIrHe--Dmw+i$l_&I<9CzFEm|fn0Zzl zxCqN=%CKPIQoB^7@@};D5t*!x>$R&6(cm7ZRvOKf`aq1sVo=-cmnxs=J3i)6X7*2Z z`|Cr9p~tK)DL~#ft*0~2YsCz*U)Bl7WnMFC^hA60Qvv?aTFuT`*J1Td8GPV+Q~jbD zhWl|iusa&(LH&{q$WHgM=@ilSSGX)h@DZ8n;|mEXN-J%|G=CROU~uXEJ?oc%j^TDr zP!W%I&1Vtg-+fDuu*09+MEH!=qv>O|h0eYa+GeS&(du6uuzV5!JK=m+8YW^%fJ8tJ ztul%U5=Oj@aZW12Q@<%x8X8HnjCGDD_Ar;OKK+%6h{p7XpTmva`Qo+2&?jmZy+C@v zJrriODHVw30HqyJCeg;R3aT83c8%wq=<_4V=A7M4++0y=Fhw_B1GN_77?! zwdwC~yUOIT))YZ~z#8+NYpkXR3()Uo(oAjK>J!^2K@lZ8rJH>YH^UDMY>#KJCQH(Z z@mIzVYc|_bv@VBReR#?=TcDCE@Hnhd=yMhNBVelZ=HXe#Sn~YW{}LdR^gqF+8o;Ps zOq38NC=urjZ`1rhyhN{#UTZa|ItE4w%fklDs?BWp4by8Lv>{^>JXfclfrMY+Z1%{X z)wi7IBKSqx--@w7&kV()l)*TV6_cZHnE*_bf2Ss)t%O2hG&;FCRpl7vQ|ERCZ+VDD zxW+`Pb;^9`VuIgj3dlfzC5)VX<~)Ag)7V`U<-cmsEA|z`ZEE?^?TSt(v$gR!^OwL< zL39V^NYkGmN*SEwS&^^zu5PbHM9#x zT5k8hN3cTfVIKgDl5EQrMg%0 z&_?avdt&}9n~ItB9iiGb`E>vM$AR6V3ol0VeZf{pg$Q$+hK2Hqjq-1DYu#{}4r7U) zdJ&PB69 zS{&v+0h12XpJ9pt7xDgT2e0qi3h1YhKE9{BjTG??AM}xAoa1N+cgZw%1vAXLXbCW& zgv)BS_UUBG;@UG_FDUe<#nMYb@VhBm@e-G7{6svYWjry~JQ#2q8~=~o@yzEP~P z$LPja>oUClfUVb*Zrre`P?gRx4A$W&f@lpsBMdr+p?iIl=zwtmnSkYjx)@>dsFk`Q z{@H}<8ayt|rbJZ4y|MY8>UJYUuZn`}-vLua;i`kS*zU(akVujErcCFvqtW2y&UaZL z$1@h7KDL4V&D{X&%4su6>ApYN?FeNzUk*~T6$0{0I37A4PK4V45(^RKGRJ_|(`iH+ z1|n%m>lxL?vG(*AyDfP?6XlXh)GpFOZsMZp>!(Ap z8^Aiq@AAch|+ooAN6P?sI>wZHk5KmByVf35VCiLyE0cCyZC+ps39jB{?SFpVFZjthMa;iRR~Uj_c7Rz!%sA9W||o`(njPsH-5dJ zuag3Wx2LnK0R-$pW-TB1K~5+H^p3wLcezUv2$f_t_+-MuEbKnZDSyV*@QLpF%m*Y> z`NS|>ua`#$vBQ->)BEvOxplV?2C-hV0xBN3>4TPBjTpSeGJ}qI%9C-RLl7onJ+4mj zw1@ZOVHWU}A$xrHB?uBFh!m=kr3gOT!NU8en(a(kts4OQaMDHn8U(%p&L~0-)8GIc z+yhn=g7I++Hn4z|IutrO(7@9+FPeTpHYuBvrFmKG^&0j3YPRFl7^8xM_j!{e|1}Yd zUqOtK;rI;7?V${Q?!!5JZFW>OgTs_x>HDog>#_oKqC+BVt%cx=4N4?}BA?_ndPr}o2gJ3&kx|Ly6G9U;cg=SCJo*Fcx{)MtkG_1h zPY=$6N3_xF_O#lxM?O2If~jk}n#DRUJKvufy7qyYN`gqMhyT@A&l;T1cQUhXx0MqR zo0UHhPt-HS_9wn!LKd}RbqH$}Cpbv9H8GI+fj(GW$mHW&SgKeKqYTLaQ z%Y%$oY(PK?3&Wge=5N*MREPR)@@rH)_p@T}>DOA79@)L+ZoP{ruR^x}5Qq-}9@j_u z<$5(zxGZ9jU77TJeE7To{u4doDI3Ny^?q*E`+P5JF*QZEZ+^%WkF5hganX5C zOB86bsI6ysfTsk@0;C$@RabtEUy<6_cthTqx9PkO9~rg)b*(NpRx7c>B+@dcvDxjL zAS=Cd0Gr*!xZ&S|oHiX2ClYK`Sc;D}8^x8ckH@=3ZC|6VAE1XQ);biI;HlD`uwW8I z2JExcz=y5He+8bD1P1XEgZU$3fd-K2l1;jdKzRyZ-nb-!X)2_5Fk|nnGMu}JabBfUcF910T7HcW&1Tf{Dh9ixqy$L5 zrQV&$bHc{AoC=P&h>wQtMT!Z{ltaf&MWwj;*-ZWi-p1^nm39wT6OZt*xg zJ8oRhv^O^&0;11lLL!h@%WG0J0XL1S{yj4Z$GvtMM4Dy1RVAFU`fX+3Zka(|s*;MS zd;msQ<6+e{EKTviPQKvqQev9VZLwI$Gok;{NNB(bj;|rJ;JnVQWw4M3Iej|und@Fj z?-WHFOs>aw3dwYx{KyfYnHGEq{}b9c&WJ((w7RP1=@K9j z(;1lpjSkw8YC~mnYY%71d-toQi%EGyzvx`=`OOe<|0(w`1WFfeAp7nU@d%+$cZ>#j zMsW(?faK#l!!L1M#UGG0V9ef8@+l}X_Pd$Kqa?J~4gq}o> z9^CTz{zwejLS3VUUq2ddDF4H>6>Tf^7BLD08Tx(0Ze`Iew`#B{{ zy^;Qb(w{q@%a@;J({^I@V^_55z#sJipn85ox$8XkBw%hCV{#_ZlFulL!j3?xnU5fK zp~Bmj8#R*fK97ia5zPuK2`Z-1b;9hAeK>^QenM!|y=3{1lk}vwBn7ng*w*aJe*MEb zx8pTA{nr3<*=iJm1wI0{9}!X0;jyD>>=t|DIkGW!qgz8ja;fs$(cd{SIBaWy4-Rct z^M-UTp=iku!#xpT)a-B+k_dA@bi#u}o{;45Se%8+DQ`3LkVQ%;eeQ#0yb6vWC8k}V zHv3j;%lGOUe29@QypX&Nu<_82ZD{Yn^;^vUT@VYmvH_Q!qfX-W2GQl69Uv*srzQL4a?D#qPh^UL=M)4`(^#e1?Hr0MS8b%?lFS=Wj zA2aMEPT3tP)h1{RBfmE`|Bn~INupY=tCE0eIh%QPP989YR?;1;`mf!$30l`*7LI9& z41dQ{y?Q0jkuGnFt9sr?&AXGLb}a+unCb>kIs+#&5&tqvIFH&XiaL zoi)tH-WXT@O3e47>@o}3<9Z@W zMJDa(F}24_a}pulCu%zbcxN9?Z>@@DS=;SoSVjJc96%0$Rd|Y~KVVx=rf2fAbbp<#5eN+_cGu9(=R;xmJ}4SSj|7@1JlOs3+<$I?)A?% znGQgH6@?dF1`y9B(FG_9)TTyiB=pcDe-qvU{*&+q!Bj{DvDcQ6W|4Yz-xO{4PfV}U zP2VSU;XNqlXDlc|s4_dVQWp@VG&|nj{NksttwZK4wNewWn>$B2Hha>UV%iH(CpWC~ zmCH08!1e4nN}ex(uNIo(jnC6d-ten%2}(?ADM`tc&7!>$TIu%skwjY z#$EpP?EFc~pvpZ19!;@I7TvvYPdxwHzOqd?^06?m4rTBAAVm;ZE`gLt1qQE5pfLt( zS$;=-qVq__(#A9E+1=mXq_pfi1NNwOY1l30G$@)s!TW~m=bImT&+l5G~UO%UMksH)ysOY`D(-c%KX?m z97Li2QD+Q297X&HY#$BKw|Iqc-aaFF}wu&eSO2d*A7Sga#q(OSo-O|#X z0@5HLu>k1~>F#bt8lu~V|9VmpLS!7>#wJnSA#G)dI&9nR^OEyVwrWtjTVQU^ z=R>U+uwWyiq9~{W50J3By#)Y!gocMpEp2O`gz@6__XJh`Bp`9PR~Z%*6lCPI2jieZ z2tNhEsHDDc`y%_Hds$O~KQ5maB9a8sF%;#lX6O@crr0;-$)Xc`?Jo|FTC5;zVe4Oh zy%mYQQ9tH!S$>7jMDnAJN@M4(O4jI5Rp&w((<_r}mukxeIxUhilZ4sxo4HZFe7(b~ zg*zS9Vht({6ambKr@Kc{a(rCH7t`ii|MB#T36xG4%6V76wjE!SAx8`3ztg>5Idw;c z^a@+(ZnU~|$=qu3UE7PzW0THjD(c)$=_o42G@&{}m$6_+d+gNrCn6ljCsGc-8gzqb zmINuO!+7@UXjyOE!D3U{m3FY4Y*$1p*{+k&9{6bVpffj-Q$z1pmN{O&3a-1~e7btS z(iV*z_?c@|b(@uDh&eh|zfHX*^qo64KI|-yz~yYVVS_WV@@~-Uwz5d8UJ)qnAvaAn3oS>D3pcRU zi!tY(l9zXXyN0DTaj!RNwaG$;g^B`4nUU8K zIauNe58B|pc}Md@=!+R#co7ump46lazAU%fjx478+RTofFj~B@?h}8_l>#q!y8U9a z{#{o}Xn>;)O>OeLw(O0$n1pKQQt-MeV%oWj(5Pb?ne?dBf?7Z9k}u=j+W&o77YGzJeNkl64{1Nv>MJnG0tTuXu6L` zEE=7Omg+Ps;-uhA6`6I_jnD|#?VTh{4Lw?Hd%~>u2w4M{c1+Ox*DtB8i#rS)<*Ffm zgx9ECZ&V83EBpDilqL8psl&FcfZ!_J&Eqoh+}GTzf4 z#`S;mRVvEqpfo3D%%xhBG%$NVgw~!&=a>5f%>_dAgpLJ1b~;Mm%(Ad}yVYx93L8_;ar(M(^)Z~x)75YJ}YKRDeDA}S}b!Ca%tll(> zSY6-mKaO4`mu-jpch7${X4Kf|Z+r^z3GA;o{i-V3e6f}^u#Z{VdfT9+B*T2_e|tL# zSaVr0~nsH^FM16~sjp1QDo%>Z>#~zlK%pAIu zobg1|2{{KN8zI2#y9bmo&J0z11V3O+2SQz`5tL%0yG@HRddkH%lY57CA?G&WzuO17& z4cJqPjn?*;C9@P9{pyroz3Se-igLz?s@o*eg?TD0{3p=ZJ|+TuI8&6 zRn9j5yEA$MVUSs9*^$g3>#`pOQW+N8wEKB#%AA{o7CP3xDNjU6qLuzf6i}2{%ywJf zDlB!n_07&N0J2ahz37Hl^emfV)t^QQe#bEdF}RXO{ix>V1kvVOvym)QzpoPf*&e@j z@YQB_qqFnVGIVvF=NtzF1L$6-(Qmug95<*_chnzmzT00Dsyhgyq7?kja36YarghbN zEu?D2C}C@%o0Qr-(I%}$&oP6GNMhzW!v?VNHgELCGyKD{{3Tm?j2u~2#%|r781){M zSWRakb+S!pQ347mVuPYcO#wo}m{W^yKi43Cu30h>v-|e~3*-LOjqKgHw0s&IE5vTj zvs;wK$Db$(?9RU_SoxxK7B1*9BlVt`;>Dn6nM8@3OYs=5KbX15AXwv$Ci~hhz`e_!E)`mzBh=mRVT#=Fmw4|BE zfe0z)<|-9ZbS5P0V27kfW~9DEkj7au2F7-&#cZx`Y)e8vzbyT(8~VIn9v37D?m?YL zA}x++*N`~+Y4$BmHxo&Fn9Yv(tD5#4JO^}+J){F`L7A?P5YNGroE{T?KZN^8jWZ0) zH+c9OWlPVG{XP^r4*U(*BCK(|B8+eG6!BlX}3@Aq3QP zT(URzpY6ppmNab9ub*4rB($(*P3YbpLDnCWJGc9LT2Ege1n_^HHXA$o5J0--UgCAP zDd!alObB>xfP_Pt>+bs4s56AnzLzey8>|zhxpZsvERMTij1mv;H~pIn8HBib#6T9? zs;?_Cw_Zhg4GDACFj(OB{=A!~zsB=){e9 zHQ;LzRxYX-F{I7E*$uys9K@MdQ2C?$jA!wazIIBPLKXydmy;&;4%|M(7>S|NBQW{K=D}pSQz~V-pim^abrU zwtfhlg$IlalJ_URdC9-peqWO~TM0gd%}mDMnEPx#H`6(UZ%XP_6WzrpdX1ANu`H>+ z)_fhUefJs}&(obt(}KK36t!M_;Tb;fL;d+r2DWAK3>68Xnt4}DZ!L}|7*cK1D=oHi zfyV(i8_H>R3J9BOtT%bVFP=YtK7ardx?W!F`5CD$YlJlVQzt5mg7Bx5TJ6MY{BQFM zPPW097$^JD@$U8}C2r_M(Z{cl?O`hO*&&e)+B>s`H=(HR$Yz_bh8sQnIsj=*R6zC*-x0$4RSdcN&z(t&pu4xf(}CivKX*w^V`xqn+h0J)TL6j6mU`m5En z!P)7Wmf*^D9R$_Cm@Hp>SP|pDR1jr@Ej@*Rop}*(1VM+4iczuBJN9RbZ3f?5h%kT% z@msSh|Az5kp1O{pIZJ7x?Etvp2d*;UOn0xJdgCO##hvd<%}7oy-jV*PjvD~1GyJhVN@(>hY z7w8sJzV`)~@M7Rei&eg*1~D zv9fr8gmLYemFOb~2-Mw^yiSs0b+3)Hhb*mKuY>#Zth=SnaC+k)56NKE2CQYwObU?}5xIM~z zAWx>~&$xEv1dl|^x|;Ro(JAG0GkYGQ51(Z05kbH`ds}kW3}zr!Iv~2y=&-u)ga~DY zpqu{Vjz+id+Yy$yu>Q+}-bY8Z`@3`te0fpIopgUl!$b@>FO9j}wj^CVHrWTuz@vVN z^tn%zE1?3zIl;j)Zwv#&h&cu%D53}ZQntEo9QmyDV5pM<0v7*~$$Fod;0-1nTnh(27e@9TVAI*FYcu1@Ecis01qY1$q!CoiGLA{4b!S- z%2lTMy8AF0JZM1 zuN-|f#>bdd9LiX*rp0dB`vZI=@y!(BPzZLcg%!!qbwtfoV;(&vS%julB@|9Rl?UmC z?7z~>CHZN8mueqB{}jD8JwtLg;w9Ovg!PT8_Sq0WXCBp(kUv7MCh$agQ9qYl-&`}^ zA;Nn7W`Pc@r5|+ZLu?yee%`I1#EY~_FMGD91jB7vl(EW{4qeuJqhw#dskU*Fsb zq3nEUUEMEYG-+gHr~dP}Lx=y15Ys97=O5!{2}j!C@Crp7K61LU`@?}=A&ZW0BMY$J zIen}k0P*4?-?IGB{jnHG;*ow`zEzr?#1r6K3Zz^CoJfqz@me*#dvac21yAoXpw%4h z(*c1*&Ye48H^8;d+49<A$n6QSDulyF=w+5?S%X4YLenf@RplJv@;P@q3>9hu6`w{ zyhcOTKs|6jT#yy0o18OAD>93I=*&2O>T4^)cd^Ph((1O>io2nA*`!;p?|;Ys^q(@O z%uhf8)Q|*rhu{f&fU5+Fpx)+4wyaOBL=<%p8Ug5lMo>w`2G+c_nP zkf9)^tSC#}W^7wsnyEV(w2^pquh+puHt^fo)nL4*BjibtGdk*Vf7b-zy6ZlGM=(P3&1m3 zA5Q!?b<@;X%4w%V-hmrtILyg=&`64Kn6PeSWU##PE#+ z*$Mm4h5o*ES$(H}x@ZBd+d1Yxm&M!r99aYSk_4htzBaA;-16QAqm)K2b+#AH1DBuO zRfzaSgkUSX0ui-Ul#79`SB?VKrPG~RZpxa7=!VvzAL7$eV2y5-slx1q406{!RW~A% zU2cQ(o9zuB*H&I;1~!CRKf_^tfaOD*pDG`#+aEygI2v;xsb>TtW~>`!SVM=wI7f=I z0YvB1heBmtBJIqy#&Zdxz9TCo(35KzQ2L1tp*|)ls;eGLbke|Ug{|FUQ zoMNCEiU8VyIWD!KlNGJ|kV%e}CLoa=Jo0l3w4r!Vx?Ss)cWckAU=VG1o`Z>}+ln!baFJJojawy30} zB*ylQVRyLdsn|y%nTZ(MVs%Te+CfLmcx40X=ab)k9+56=#wRNFH`7R^>jcfCoSvR$ z1xwo95m>zSL+GC}ZXdmUsEMJdX7jY?*4YCVVjJ;kyO4~ zRr6_-5h4b)P;8hzoW0V{s(yi`GF1o5R0a@W%{)kpZL(lh6k^7vReRp!TzeRDb#mAB zA1^Ch{hzj-X~AFpx`M(&Dy$$8=q0r~Hyf zy%_$Pk|@cK;1J7UW4He`cy>rPVAU9~G!p=Oo-1 zRa_FD&E@*eUfpohDZ$B8wu^;DoQm+wFc9uF5?Lk9;-Li7V|FAx8LP}UqsLkir8#j> zdXk{-7`f7@%hga>!M#p-ks5y?`{n$UmFSxahK+;)mZ<7gy*GsE*SE7dS4^!8CN=u6 zzJn}Q`bCJMt4{CrWUsin*3Mp~JKj3`XMbazp<|j~CkOYfgaOXwXKozW|6ESm*AL$@ zGZ8Kdy>CRbBTc_JKS{<(-`a@O+nQmfXzcI%q7 z1twciQKJn@Kg6>i_;ti>a39j|Cs={P-)nrwwoTZ(n{BLPx15+FAfQIN81NxAn&oK7 zrqU5v+X2q|X*QAKwP(pVPm_&AE8xKV=1Il(ik8RDKseDGhuXHw1As6^CGS9ys>Oqx~qC8Bm z9&gclbA~W}^d^neWhG)D?(X)yRg=(+Z-Vyuc{ZE;srk0U4M&$&z)R1%V-Ji87nAR=-uhJy zpYx#GkRS@z?t<6djp}k8zjH1B!S_cgPA}aL1Pjl4`0fsVVro|N|M7m5ygzd}`)>dC zYJb1#ZX@$+a_g`2;wP)bsCZ9(GGy>$LcN+8=aWN8%RLMbE^b^->8$_u z1^6PKec-Ce29tIzQ(tV$ilT=fnjJ26C~9g-73AqRFDhz5+Tg+8OrQAh;*{-@t5o~F zeR(Bh%xw1251naDn~*Vz!lQ5{Z2zOwJF77ZdaWY!pgQ#yg{&IMETz>FZ**L{bV106 z2!XDLP%&Bj{GBOk4;f5gNIA|EK_IgjNU4=)YImZu%5s>*=5nHCu4GphPn7FkU9s!g zH_?!g%lQ;Qk2GCunA7=t7$vObX4j?nB_XbekC)_z!bsQ?{yJf^Cq6XI36$K_V-Y24Agy z-wuntbnKKkJr*N#X*c8lbnr)Yx$3lj;7a%IRJV9~!DT&V0R4BSXz0cr>Jvl!YQ!a%ko-mfKLPFO_5KL9*nic~0KyoJut zZV#gCu5izk4?`|kSA%qnjErPo`Hufu`7Drw45YRDS){^s-O=PX*#TpkyyrZ@`8mT1#J z)H_39%3VXyIs1MCsAE?b>A62Cb2M=Uduz5 zIUQGv3W+f?vX}oVS-&<0t5_hT7v1rMuenPZ-pnuwb&QijcNs)_S)owRcKDxeI_SIB z`Wb;V&nep4)+PzQi;5m>h7j9ffWn46cUQhd@knI*M-UiOkTAO1Cw*cM{B@pWf-w9R zNpYV6)F?qOOsnp3h^BQtJeKi2)TZTvS^;u4FRK3JAu3+Hz%ao&?6q3XIRzk0?zlpi zW^a!ZG(!HBz77CzBrUZH=h0nwrLroxF4tJ$U4TAB#Dac{QEUfXf)_9$IxjtOT{H@7AG-yk?NXINn1_=lY`&Mcd zQ}sUf(SPM_s}Q1NB!fkZ4M>ICkF0I}{5M~IcgTEaM#&%as!)NsS*PH>QOM5d0N~;d z#*E&L-8|hR7nT<*>{cDM)tiFCR;U}>t$D|UV{I8!WveTjfcS@=uTBxRfh>&qGBfIn2mlB>y2Ga8~fN7ZYQfTz4*0$aOcKN_*{28EKJv{X2XW z5$hZG&60EDYemy?{!z~swTt;J`}-D(S0Av&iiY@!jIiy4Z39y96ml{1q7hFVqu+5) zzaNCABDmD6w#Uy$Z;T;aMdcA7ln^(M)W{^DLbx+Tb*~Rk9a+vg*ec2u?y~!Dd$Vm7 z@Sk;eQ*!sEEbLPJcr^?~g-l&VVxtK^Sj>1mn}83xlVk+{#pLvA~o-dAnjv{6?kwwxU!9uq{r?;{2qry9{>Dx9>&6Z<*{Wfzp zbZA8!k}fXaS=^{%yvr$3^}04EQt^#&2ilDeC6lx{EpS-$pf?=*6IS6IXTPwEi9xVy zpYU>@qY+gJBezWuK2eYy(d8BWUCKQZKlRG@8WFhhV9(x@m0 z*`WWso6=z$-e4vsqH{gS4&33KT$Yci%`C$>k-h{I(CckTrC*-5;7gG#>f1TI?1B(! zr>m(`g8yU8>O;aRXaD3nx$NZ0QpJK9qYLi*$7Jhz!$>rB(zIW$e!()-mBc|2jV95$ zTMtTM#00Bk>kPpre=yS{5s}-=<~^3B_!2YHv!toJX3NHBciSxQTi8}a=yM!gsI*Qt z)M3uoX*poBM$+| zDiDMXPFN6E@~Y6cc+`7FYF^~u4Uc8P0<;%Iq2*2%>f<(u?oLwd^=-!)=)e!@i2{~Q z9c}6qhDQSv8kI|b$e2FE%eC+C`mlb}!VWZq?E>I(s!etyTq5 z-trN;y4{v1A1!DMhpd+0T~-gus_h0pR83hsFrG+SCr!t@O3wW=_mtk9sS z_1VZ4MBSW;7l--J%v#BOxR~J~Ud>S(@2-$(L?*Gy?DJe~nzy&V3wz&)vIw>Cdlv5Z zfDJYYt*0KEeRVXuP>|K7^MT9Vv{JdsBDUh$tw;BmtRmb zl+(f|($4=~l;`a`rYvz$Ns5ASx(Eg5$xBbh30wrju2T8tS`PS1J3n&_2mb=ugdgsi zIrF)DX#mL>WhHGpTT+tIiUGr_f5(iW81Y5s2mv^+j~dl_ZveycAJ7hW@$s;w4YPqJj1m`h+{tsGZ-shTR-( zBhCUM+)iQQ-|q+=9YSqtLFt&{ydsV2GX@w?9!J%VS)9d;_~yRpYe{ckNAEwbHYSLIC|iyFU` zlU7)q3q!4x0q+|soCsaa{2063-H748hdY9G;uBI;a&bTn)zEI5275@U)t@xFGWN)F zfr1=`jL!bxkMU-0t9WBCD}p%NLLj1Atd5o?pduMeb=xXv-S&TE`{zu)M79?L-^^@z z^#?-?0;_{I7;)Xg&JoJEp_uo&l+(5S6iPM z$1huCSMYi~6t*zGK23RU-^cL$sHY)E)gcSVPT|yxPNL-HxQr)X9^&I>xF;!kD2(uK zgy3h61ea4rBvfnbL}v5p1J-E!62%EZgE`x}IEzv37&$#X@p#@wZf^kZH`;@y@27)kVgICwws~lW#{e( z!ox{Pm$l4aI2Uu?bDdAMss+NfhGoh4YvWEfr(w$^TM*tB#anJ?gIUMCy`z9q=eP)8 zi!6^P3a|2EWQ$N0#j3vOd-OJ{Vi9C7NDe`s#)0*_ui``J&hWSvHK8akXBaQvsks9v zxAP1&8tcC2#|>(TG|!(~OVr;5&F!w@eBq7PeK*E&{AJWUAd6Hin^^3htL}#L+|>&1 zxj73XG!`4S3O*mL+MM_Ge*6`Y?m#l_aK5x~thy8a=**G^pHRfHE_BQOMraC)*bFd4&|J!lul{U%b}46%(sqnb7p_9lW%4Q1NUBP(LV`Z?2$BTC8WkLJ*!iZjjc zd-ZQ`#En|?ZG=IYeg1m;n9ZjH0pYPh8XFt?R1pSxmc1LpnePY@f=6Nx7NK562~Uyo zasH6AsVLrBc7gA}bNRo22bIm|40lsdwQGmarb>Iav9X_xwNcJq9Z>Kc7k%T-YTiw);RD_um64(DRKJ+eLK8 z+KL!%%|1Vh$}e2m*xOy%jA+g_3B7R<(9x|>`Ep~Fuw(kHj~@u4b&2IkiFqTXt_LPT zYfnt;2$x(d`kJ7d%UjwHy(=$};2^B~j}rXyB~fex88#h5Uw!?!oVV?VX2k2VXi!{5 zSDZT+lP-Stc<}HF_3s6_<4lc}{c4O_FrVhVAm-|ih8{Kwf`Idf(dYjc`h23&iU(HW zQK=%EZ~K|!5=nwYvWf)QDYgC@?I4rbVuuCLM*s(6_ z1JI9T%?&PD(fk_$Mem07mV1C_c+!6Wgu>own2PKD36x)Xj{+;Vwo6-6m;CIm2Y={4 z;ecZ_{=M+*qagTlMt860;2yA8Y@3gnwjcx|nU)_wV?fS^G=&D?MxZVHPJz3ghIS9x z#P)ciaAdQ)VAo`DI%9LkPzjP_gMROogUx+U$VOdz7Wvve+_jIXw)-hfGC3H$E7++V z{JcAcfUJsMkB4AcP&&_QRx9ITj3V3&8ohfT>utoC5R?9y!CpO zc|d*7uHVFS=J`EbdBeY8;}p?OL<|r>`499%D^!1>0nE=ozBP*y)El8f;Cp)Lu@gf> zf7H{fMe51J(UEjeA)PS%*H6easMocp;?b2n-cYysGtc@(U>$sU(B{uUa{Lah4c-#; z_9b#8?!mTT!L5l*CgaH^GoK~DgNqr~wtJ#S*fArP0B%4^EIu^bcndjI7>#|_g zj82Qv<~8?LU=mCCM&IvVdkx&QlSvBTOq}Xf-Gn?2sWwv;9k9%@CrE@ie=Z^^I2&S+ zf$lTX)Y>4}Fj5j|ag~o!R_3lpEp8Yuv5It_ zpMvJ5jCUwCisP@+$v*M*u0=ixRrSFAmXp&N<@5hh{(moR^Unzy5l0V=9nyes%zcbX zcAj?`Y4y6>7*VOJ`_GQ4GapBOHV$0NRP1f)_y8xMQZ(Rpb(!3XtC|~5B#Z>pkBZmN zw?VxGFDmy3^^zv94=Fp2Kwa4|Lx&M=8{F<xEH@uGM9rf@2X=}tj=%{aA-JBQ(&~J-t z2WE`q`A$4E4x=|^K!TEGfd9^2Ebz4gP7lzJNXKU^DCJ0-tzItNp4GN6APs;>@BvHGRL)bIAA_8`k7e9x{Jkiin7Y` z=RovAGOeu2BJIwx6wnFB>o&2Qqpi`8(b*;5Cv^V^_!v{z1(e_m#Qmr~NZ0~(v{;|| za^Q7k{S@(!9;W4#1cheFi!~?-nKjUc#&d2LRcd5A1>?h%uZQ}8svjSwe|2T|^PWeT z0QAj&2NJ{}xqnn520z$jt3E$K-k}P|Tx@&qA(CZ46Ja2W(f9o)Cv>sa~uq@S6HTpVnEynl6>Pt`7@-E|0;j>AOE}j@#Gc%oiUwr>z8l# z0m=xJb(EtyG8QpwJ>F`ILSDDuA7P4vk&5KNXQ7?ovsN{`VE{#H4gW=tTtkHBtwZ)L+eo@enl}lz`pN;t zhy0SKMz!9^%}Gf=D{L246Sy2g`;%%FSeJy>opkH5V6+1%xXvuJ$UCnD?5ufiBKzt8 zbHL?D?z;_2K6PkRwM4mO^Kk_5tXFqx|oUph*(H!GfdHCjpJ&NO`mzy~L%+{`0` zL|W}fD2R*J-08$&8&D&hly$O$q-uHG4RaGpkNugd_u8~H0&Y#%29MyG{Jgp;#p7zm zqyR$&3}K5uy2*3w2#ge@k$h_C0(Wi7j@zGcQ#?P2g{3KK5C83&Pe1)&KLh$Apmbr~()H-5&L4k^BH=Tp0Y4#uASKl~R7>kqOUztwj8P z)k<&9#`DBwdL|3in1{tX6kD)hl2ca~?|Itbo}6(0vu8YAf@G6pWq}KF9Uw!!$ zak7CMO|f7a>k|;9?2Hk#!psS^v>uhO+a!ZPl=R+dNnqJ3cW?Ir4mP(xZ+Hn*6PFS=o;GQ>j$F`72_d^idG%0*} zPP{gjur*PdmJDWv!ptr&swZ@2di#MBCC@_P&>OoYk^F*!$N(}|aRMfd6%h;5G|(Us z$dOH<2S2~PjddeAPAJv^k?{B1$;S`DsFi>}!i!g(%BJ5`vRW!>_iVma8b&rjyWdJ0 zy-xP5_Y0dB4MVysE{J^q>hCqe#Shp$!Z4CZHh zZ=Y6w-)9v^fV~gh(R4~HUx=-3k)NJd>-|8gzrEaEO?BIg_{x7 z@fkBv9_5J2lem2D_7s|-7Cn%uj*In)h<^c6DE zXuBx%FUgP1eUC&b!E_**>!_RZYj<(&JpCZ=afqo5P3>-eNJJkykikV-UmDCfwPv>> zxeDk({t>T!k*8gG0g+})s6~+)W>p|EOCQG3*j{SbE{OuO0=?c3A7x|~n%Yen#r0@A z&#k&!D@suX*A0ak^A@MP0hS!93M6}Z7?`ntHnC74sY`}soc}Nya@Dc45M+A^y_r~V z_uI5@O?=vhi*65}2E4_6-Gm40cWvCm4&P6PL_Q4gHyX*JI=b9`j)P`ooR&n<28TK0 z83=zv1~Rk1qdor)FEbd52L9+bp5Q))y~es4H*QEB_KjvJZ5namQCb*djmt?N`WYp? zCIISS^z6C$nyccf<{w*?RNl4`Oh1;kUNVzL^Q1(H8k#oH;6tUOMOYTwP;qlM&Vg7_ zQxJIKCRfA1W5a?iyk_c%%(W&rVwS2UlwMoS;f3Q%eLmWlgKDx%X}~LD?j?T$0xNEm zKkZK>K3sG#^F^u@*0?VDX`w>0f{)tSo+0_nVhwS~pUQYACKAa}zu<8y3L$$p9aa9~ zl^0-kj=B;P$iwL$f+w15gYydh2*gbMEL2MP*0>wUX5m-604XX63SDij640JpO}?4a z?<6!yUPL7}w)9X^?g%mJi{;8^{%0^^fu&acjq{!s5Uc(@SUmb=<2jn3glS|M)bK~| z&2JtG{$0z)g`-MyV>(rk4uXGIZk95zM+%AA=K5_7rTdz;1A!^!ztZ*VyRfZ^@;12T z-3ik#UCjI8N!afM5Ga2iI~861HsS6*=}LT66f7F7R^o?P1kXPv@qzH|8s+=?5uHV$ z!JkMG;zaF=$Wm_sW_CluTOUaM@FoP13(s^6pLd9Y2C_0}G@>4Y#%Ui=wolL_&of!( zd4EHpNEDJhHcN_@*~(0^Zjb<@DNS>VQXM(|Bm1GWhq?SWJ$9wR7(||4w-@U?x)Z;D zQ{ltJ@l`CHMXkpTW^Q7WR9MXOu|N!(7`-U5ONUp>+&sl4HG?vG-fZjk8GL;=PX8;4 z0!R+C<8-!~l)v4Ln~QuAHHcrD-BXs|#CuTtix?GBbQLPd4+^RO8_Z;#W&GU=7uhc?hX+#JB_D~0uKa2K-em{$y9YUXS% z)ZaSbF#`_3%_B)}u}uffzxvr?M%i@&Dd0eueRee;9d({~yPu^w9Syf8EswX-Ixc23 zG$bl3T+GGxKk;e1r+gPDP2Ro*^6rxjba1=CtNxvWMqd+Og9f>;kygPN&OFoO=n;h< z%k}H24gwugxJIbvJSpoY{8tImX?%0}2I+B)w$7T^kUeg~oKBEY>?`>ZR?0Jbwff6_ zu18X!yl-t9O<)4_?=RmUdfaoS+xM+E%nvNeT1b~}I5KLdh?0^DhymB!Sia zK@t;r-Sz{d&}1s2#UDjL2>4-N#4KZWH`R5EF1O72emdf7sCv4t#RvK3e)Y~TzL@LoamUUfGz`RmPEa9~~ult^hc$Fxi;E z#)8?e*UMLS=bRcH@lV9{Tt125yNbE55m#?&eUD~+1*gi4b2B3RpZa)rA4GiM+R7>m zAv}%%!=-G9VJF9Tf5S`cPbWQ7LyVpb--EWuqA&Hi4lFMKod5;dHW#&^JBdOIuip24 zDlqIH6*R9p(n!yb#)*+RT0 z^baxLorHhf9%o8PU#ihA)AP~tx;eEUe0OfhIu8nCYS8fvX;F_V7POcsiBZTD> zU)kvrAx4Q<0OBY@;6HKPtb%bGqt#p@F+kRWC= z?vKwJCg|AyHK*1Iio|(XEZ~O<)Rk!O8#i#iizc0?5ZB29?2zNNUlweeb#}|VJOVN; zL|!%E7sf4|GzobHjQw=Qbu2{Lb=BMR{}i#SZr)Y);U^0Y_L55*lh!k!nw@TE@F7oa zPC$bs4ybs%{kS0y_`W&Sr^Oz3yY?=7KHiq<#67O?`rtawgKw~-8H=-D(|qR-K(fT6 z@fG~8iBu3aaX$pqt69`S{2XlOgZ=!2Lw-*a@+ABZnlP?!UIz^lr|pz5>o}pUkHK;J zU1`B}{O6qXeEYy^gB20r8L4ev)fz2#hT2g=m759+3!}V1B4Du?XMA5_7-TwESqlDn zz~i6|ow++bfNU#^?YCPyNrhZ0?^MDG_?I8|VgUHzwhG-?58L^4@B<~KyuUen_aqUx zSUG&%jIW(@N{V7vxgxb|$F>LRA@0vh;4ZKB(4^s|3^LIcOxoXTh?nCJ=W6n`FOzM> zw4M>Mb|(mz#_709kh$%=F)20|rasfL@1c@q4Z!CA-EyxTj36bl!?uyGRX49|0fQ9- z8Ygbr>nYCjbZ)!VarZuFVR^3UN7XtMJ6UZzNkP8)z$Kz2;E% z5QCbgFED!cv&J-v)D@|ZbxNaabp{wA-{fMbN%riU@?_1c0W#X z+)NxbzS=SeMjvR=Kgjjof}1h3lhR&8@h>imQ=G~A&K^|oUiJS^D*!~xpD4aRigJb@ zwW==)p@eua@XSBVGIQRop5SJ$!&I3Ih}!$eTW({xoxYL*MOVG0E z=hUQ&%uJDh;Sk{>^pWY~oeZ;h<@nbDTje<$I-{&&m(IYyC>iyEL*D*;Ej{1HZ?LIO zEYLRBfMuB2^^^5kbz>;mP}1O>!Pbw4ai`HsGmUK}=4yxODl;H7MP5&p_xT=DigK}L zVP)Ybim%;I#6~p+KmgIMg(7FZKnBV!u)z9SqHtwoP#P31pA=%7UeiUa)PV!0Xs_tm)cN8dvzvOJwr{lM+zSPW3A(_R`Gp8zMMMyp*^Ya{&|*R$V`R6QD9N3tXaj`~03 zd3ww_PH@?zY|m`F{xQWMn+r&Ajo%vZdC8zvw=nMXa>p9X@3@lZ2ecmU^f-S+ZS#NW z^cO~aiq%|viN5Dia`j6@GaefUt{p!(*Y;Ud>V@FoiJH%DUS?RZC{4U6`c3^naU3>o z2o@HDbvzM~^#_rw&38FMy-7ALgfg|!d7W_HMIm^K^v>_oI)Ay^W^TErH!8M68$q9V z9p^;rUSsP9waenum9$)%*MsrulnuNnS-ZL{yaMcZ#TA)y}MhLKyi^oLt$Zg zK3&?QuK~^k+pWJH#1_L^ErWDXb2G zyzQf3WSibEedF_~{_pZ?+c~|7SHrDPop_x3hZ!14e513k8YakZYUS5TFw?D0$h9%& zRX)AowAGspM1Lo4Q#e#bD4ZF=Id3#n4A$b$0L4AFxmh4rM+ z_hzMxl+WfT_n(XY8FkwP6DrOa^D@B&hS-pLz~%Zkm*;0Jh2{^FQggSVzO{M^2~vb7 zuqtjbE7@wNu~DN5!=F(~QUI%%yDXlzD;t#6dKBLZPe*mveMod#=o|%p%tJZ`g!pm| z28)rqcr5dCsXVR=Y%f4_=Xg(-Q$iuSvtnPK7e-agBCGFwdAtanOA&HIU5Nm#QnC-4 zy!dVY9RokABB|~(PGjo-mT~HFU}MJTipvBA`L&J0DnC9O-c_}LkWjo~#s#SvG>3?+4KbZ3@l z%{dBJK*0KPZjf3yAlt_^^B^AYcA8q=5&G*0ey58%0e}B|*xNQyLkB6B6PM1 zI9l|qj)TAd_N$q))~31#L5mvG^Dpnm3~%(XsM|v#+4&+py||4C_q8ge$B+NJn*u{96zRz8&jz1s>S8N?n%X_p^*$*0u4^!FXHYC%&o)mvY0@nbq>YZNLdsnh72q3eP{d&P~)>gaZ%tun6&E zi7NhigVXK4S`}MH9FOl|=%=`3Ml+(Kz)kEQJ14KZa}oZ+^K%zJHl&pSsy&iVbc*n> zImOLn3!&qD`E5yyD_hwTB4>ntw3?gj`e@Tc_?Vg;FVGDpewMO(kQifR*>+kEm*4^I zitNAzp0%>sQ7d^mH12p`YgkaTbr3NzzITv>!fNSS|3)XX_lZE^@h)n=3Njq{OP;$) zu!0qesiJB$=(TKGQWj;J67Zgs{tPvWw zve{5P#QtGQoZXwI0wXgsJoI}G>Zz2c3-3=l+mpbPI?%h;m3!L`oGKj@&*1}3EkPbO z6=6lJe|BFpNmrTY+3&*=QX%2{zRzkeo-4oC#l35Q_M5jbn(4PR;fV;??!7Mx{!*zy z1H?fO4dJ$focXhX_ph4=hdI(NoA!~6jYG#QoT5!Qhh{?3W!TX#5$M3u2H)?c6Rxsh zLd;n_0qFEHc^-yw8si0bW`0B}3cpyUJ~*7(18wQ9!Bs@q7f~p_z{95V$*n?N7A3vG zqStBJzSqO|=tR3PQ$jxBDFn=M=#W#ClE3l+zy<~eng6^K8g#k%MRXmISK5tqT$Q!1 zp>b6EP6T=Y*&pTQrYg4NN63I1zUfYj?{Z*YuZ=Hf9na9S_j0Ti8l35OtJi!HOMjb#(oRLl&Uu>yJ{;eC}b z>fp-6t*`Pmo8!5msVTRqOr!Mkj$OOTv@*D)0SWU20qmI1JKVy)r-urKRhi_FCiLg{ zHgWtmW++UOA{lrICNL|6jhsY6EN?ot98+hADJvT-tT<pI|BawVV4(WI4_803gNSby3FGkJ!2UA>=()iXXetFmIa8_ zv)S8oj$5sq(m1f531Tv7z~CZ^92Yx_M{0rwcNVd9Fz1KRel1ZH02GikRdiEi?p@t} z>FUMlCoPb)opZ{Q@Tt|f!NU!yn)9`7tIfIZW4L(=F4>N9U6&}6wp1%Cs^jQFp)g&V z7hw(=T92h1#f)e?I*NN^a(B16k;a)Xh5r;yv)lZR+vu1^M12fr(3qP&A0U4PpRYWU+ zN*x3%_{hxw4H;eW!j30f5ssf!MbAtC6I@>PBE#xgrF8NHPHaQKhr!0SLg?W*T~laf zk4fF2e_d(NvQN3W{&Mt%!1)v9!Bx8< zzI>29*GZWBkBKK7ru$&_T1YOc()n^wXvKpNg{-#@oWW7O9`?pyo)!?PPww1DL(W9t zv|ji}PCKBggRdBqEe93Mw0SoxkOo<=qlo2kNsBVpkxvGF!Iif~!$q3g)0@bFnz7og zjne!G={Fl5=*~;y50z3vW)w0b9yddq>6fC%^MGaUP<(TP3)%+nWaR+`>xho^m?9X+ z=dW_CiY5^3zBCl^c^l2x+PmtWMrm=KaiK)Bk~d(6(>E;+%{2wtZ1Q>(=E1gJCFR?l zCimVlPra1#2$tdA@|%fq&(xiXkgjRQ@Q9|JGNotmv09}epyF3{^tdWA9vdEZ+>l{P zXr-6iXWm2I?hWyRhG!q2-`?}J+b^dN>eP*?j_2P6--G^AHO$rOeW|qU-sc(-GcDs{ ze#gt%i_d3p*Ma`84`gl~Z9FZim#u!o`_p)j>Egj0&5BduvCr$PXX1B5IlQVNvwVa( zo5pt>ycwBoo1qeX(l|vbbdDtVOB6I@3wDWp&{2O_$qyxv#UKI0$xPON$=syMFO|6Q z>@Ja>O6>r4JPh7xbD3;NPw^(;)YL;nS1*-;Vc>M6i5$;e62;zHxTG_W}^V0c-mxU#Cmc zdg1tJ0aZ(YeU3i7&NvG*_--AV8K&1?R{2I9s5~)NT%RfU$pOEonsa?C!bQjC-Fvos zGqI~^A0=FAK&>Zj)2)NbIhteIFmoKjZ0{V2A31*0;ZdaK!?LeE<=2Xte!G?~4IES; z80b&!s93pP&;@!G4bL}lL822yfbgR7vt}y%AfJzxs$O2Z+TBUIhO)Zp`VfVt)|@rwzoNAIrG`kqhPFslWzUQ>3ZkblK@5hw#o`7b=7 zMc);@=$-*zF6zELb2hL4Yj~N5z}xyr)=*z!WG*BHF}PM*|3s+~Xq!5jV3f^vi*k@J zmO6FRmN>U(q9YEJwO)U!cWWHxw~hrTmjXh?z=<X-bh!&6L8?6ndG?}!p$f5p8+VA~$`51`ReM_r^u z_j39|kuLV`*Xvv`#G7PU>u8L7J(%-ObYPW>dJ!}Z4U>;Xm3+`dSKyA>BY zKeWn65Cu(=R42Xjk#X`L?*FnbY2kYEjn8IEP;|zVa~?p{o3Hy;m$m7e0+PRIJ7a>Q zl4RO2&wrc1>G^`Fqj9;1g1d7v(BA^(7N_E{5^89+J<|N~A(M=Q{YtbqY`qXTB<|r}^z(Xvixe&9cM9x*@TM1)aRSal=?(awDUAn4SMl0_9StWHuJxg~yUe zXTag*d+8Wu5!vvkd3MwOxyPcnS_=jG1}xtTL~ym()>&?y)pYg~qe23ArEmE66f%HW z*5az`3?-~!gZ`XqM$97GSMHY*Ervqz+Yo1G*2WIzk03=SU%=Wh5QmoaDQ%dWOwum0 zsMV*0oDZWHO3*rNU%yvSjTii|Ir^KBQ-MqO7N9!<^zGrlmWA_1-kkTol0|Y+7V;_= z+8bUrmn&z9`;#{^HGdA|PtMX~%H6EKqg%*=lTIm7?V=3b7mXsB-kTX*{Xz&9^|zWM zD5JP(Oy zTSW@J8Xz2Cu!r_95iW_yt(AZa>G_1<*eOyNEar`%ZYV&|mfUH{pN+70|ma;>8)LfkOQBM$7)3iYOd~3)@(33dXO1mDsDrs4Ra& zc-bll;CC^nq89@OQM3~2-4ZML*BYRVfyJK|%0$schJhrezMMYuJ3{yqH!aF}|B862 zy#3po@8Gau$n@lDD$j2aAdmOlZia4)IIHse8n?t)ARcxr>t}H8yIYmZQ1yML=R?M% z-!2x#S2U^0CvJ>YOx`^odm-)~%U2JDNKO& zzhv$q3b+-%QYg)TmbOL6A6V`S#;bttPp7ugQjxkPHeB2yWf-%rZygx{Etx?lPWj`* z%}6J%0T@s_N9Nk~RjW)y!rsk&``FS9bJwVfp)VGibQwSY3by0tb zBIEOPkp7U=q+6<|3{YQCg$-5^jK`N5&(V`r)m}dS#^5G&5wadX$-@y87*U*GWoO<$qSI#Vs*3H*u+i2oJv9#*_cQN ztONrf(du4lbpGRLEb7;*U1;#QiJgu4_1Sh$y!I3aotpDqr;{bV<#J;A`GDDX`zRXu zikHT9w}gI8Wm7s-7pKOI;A&p8)H`78v`EH=YlE_Qm(?U1x*H-uOD7|laVRX7Thb;t zs%to$D1;|+Ay~^d4p~Zc-_+qG2Ygsv3U#Sv)SZ)qTndB?pul?D#P-&!?bQIZ6Tm`s z$&+2-QO1XXu$;4<#a0^oUJ{JU;^|#>mwx&<_^3Vo+BP6fan2lgniL*W~r6^ng-=y<9(2ZW@QP21z3RbzNA3^us6%B z6*<-tTwo6IT>3ZlFyWZG^5+axevU*M2eUv#Omodncs=|SJBhzs!4hfU#OWp=Vqc*S zjzmw>(Ez-N6goTdM$@`Av`e(;ughA&_h+vA(f0>spvXpoV4@a>UY9eE;3@-=4%aiE z{Ve1XxXO-+W}&uf!g(-JQY|&9Ea(ssLf#d%Cys7ZmyL)*FNEC{XCMN3@j;PTyR}sA zD{%-!pfP5V%s}1`S7R%v-LvKxvhf!?yBJZdu#%>oDJ%cOS^bgQU@-Jnjs~6CA!sd* zG*I7h=Tr43#~?VjRsaa?4+xQ&6cu&$+YRcj;?3u<6UPB7X$t1?|I64fc?V=aWC&Nq zc{4X1lP>5u{V|$$gvxeV-=ht37tv6s#c;BMSsj=XUB5`uy5x30FA2rSd};B?WbYj~ z7KA%cn%eVGJxKND7^{r{oic)F2HXrMm0jWDIY8>a+$kj_BjBDCwKo7x9G<%9P66?y z_SoU-@;gEfB+OrQc&4l(>w>#c;y64_Wlspr8B}e5x>G1lSTo9Or@GW6@QlCQ>DA20 z`m_0TRD@c$8^m5WV%AAdRzwOjrOS#QSw0a-YZlAa{0MFXE4GtrG_e%|<}2r{?F}%% zY+!77Y?l5SwKwpy97KW;5;S4O*7VEE+c-i^F4zLU5ygk01Tnahy`(8XP5ihENSvnM z{g9rF<^WAt>g(X$l{ph>1rDKw{mGa#jlPA(AR92`@ z18SO@P=20jYZSO3=5wSKR8GXt*Hi+)NNaH_G2pLTt%6&*Sdaz({Z}G2E(01n zfBo7&x7mpROdoKqLI3*$DfGV7tnSZ8xq#8%|C(tfRrB=Y+5JJ=mklj`uZ$!Ihd1Ao zKJ?$;EeXDML*>N&+;I&LoWagA^v>V6URD&KMy&t-DC_^K(f@5VnqQb1OJSg)p|ME` ze0H-qi$$yd6b%YZhr!|qq@Nc>Y#tWGJZ$iP{`;>V@UZBj_FuUF{_fwx{Qo8^Oq7ei V4l#`7Ij9(owuYX1p_+Bj{{U5K3{L<6 literal 183562 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�BwW#N12Gb1}O=wr*1q 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 diff --git a/src/Dfe.PlanTech.Application/Content/Queries/GetPageFromDbQuery.cs b/src/Dfe.PlanTech.Application/Content/Queries/GetPageFromDbQuery.cs index d73dd72ed..fa080876a 100644 --- a/src/Dfe.PlanTech.Application/Content/Queries/GetPageFromDbQuery.cs +++ b/src/Dfe.PlanTech.Application/Content/Queries/GetPageFromDbQuery.cs @@ -46,24 +46,55 @@ public GetPageFromDbQuery(ICmsDbContext db, ILogger logger, private async Task RetrievePageFromDatabase(string slug, CancellationToken cancellationToken) { - var page = await _db.GetPageBySlug(slug, cancellationToken); + var page = await GetPageFromDb(slug, cancellationToken); if (!IsValidPage(page, slug)) { - _logger.LogError("Retrieved page {slug} is invalid", slug); return null; } await LoadPageChildrenFromDatabase(page, cancellationToken); + _logger.LogTrace("Successfully retrieved {page} from DB", slug); + return page; } + private async Task GetPageFromDb(string slug, CancellationToken cancellationToken) + { + try + { + var page = await _db.GetPageBySlug(slug, cancellationToken); + + if (page == null) + { + return null; + } + + page.OrderContents(); + + return page; + } + catch (Exception ex) + { + _logger.LogError(ex, "Error fetching {page} from database", slug); + throw; + } + } + private async Task LoadPageChildrenFromDatabase(PageDbEntity? page, CancellationToken cancellationToken) { - foreach (var query in _getPageChildrenQueries) + try + { + foreach (var query in _getPageChildrenQueries) + { + await query.TryLoadChildren(page!, cancellationToken); + } + } + catch (Exception ex) { - await query.TryLoadChildren(page!, cancellationToken); + _logger.LogError(ex, "Error loading children from database for {page}", page!.Id); + throw; } } diff --git a/src/Dfe.PlanTech.Application/Content/Queries/GetPageQuery.cs b/src/Dfe.PlanTech.Application/Content/Queries/GetPageQuery.cs index a36b99cd3..ed5a69266 100644 --- a/src/Dfe.PlanTech.Application/Content/Queries/GetPageQuery.cs +++ b/src/Dfe.PlanTech.Application/Content/Queries/GetPageQuery.cs @@ -21,7 +21,8 @@ public GetPageQuery(GetPageFromContentfulQuery getPageFromContentfulQuery, GetPa /// Page matching slug public async Task GetPageBySlug(string slug, CancellationToken cancellationToken = default) { - var page = await _getPageFromDbQuery.GetPageBySlug(slug, cancellationToken) ?? await _getPageFromContentfulQuery.GetPageBySlug(slug, cancellationToken); + var page = await _getPageFromDbQuery.GetPageBySlug(slug, cancellationToken) ?? + await _getPageFromContentfulQuery.GetPageBySlug(slug, cancellationToken); return page; } diff --git a/src/Dfe.PlanTech.Application/Content/Queries/GetRichTextsQuery.cs b/src/Dfe.PlanTech.Application/Content/Queries/GetRichTextsQuery.cs index 8f2cf9a66..a44ae1086 100644 --- a/src/Dfe.PlanTech.Application/Content/Queries/GetRichTextsQuery.cs +++ b/src/Dfe.PlanTech.Application/Content/Queries/GetRichTextsQuery.cs @@ -1,20 +1,17 @@ using Dfe.PlanTech.Application.Persistence.Interfaces; using Dfe.PlanTech.Domain.Content.Interfaces; using Dfe.PlanTech.Domain.Content.Models; +using Dfe.PlanTech.Domain.Persistence.Models; using Microsoft.Extensions.Logging; +using System.Linq.Expressions; namespace Dfe.PlanTech.Application.Content.Queries; -public class GetRichTextsQuery : IGetPageChildrenQuery +public class GetRichTextsForPageQuery(ICmsDbContext db, ILogger logger, ContentfulOptions contentfulOptions) : IGetPageChildrenQuery { - private readonly ICmsDbContext _db; - private readonly ILogger _logger; - - public GetRichTextsQuery(ICmsDbContext db, ILogger logger) - { - _db = db; - _logger = logger; - } + private readonly ICmsDbContext _db = db; + private readonly ILogger _logger = logger; + private readonly ContentfulOptions _contentfulOptions = contentfulOptions; ///

/// Load RichTextContents for the given page from database @@ -32,7 +29,9 @@ public async Task TryLoadChildren(PageDbEntity page, CancellationToken cancellat if (!hasTextBodyContents) return; - await _db.ToListAsync(_db.RichTextContentsByPageSlug(page.Slug), cancellationToken); + var richTextContentQuery = _db.RichTextContentWithSlugs.Where(PageMatchesSlugAndPublishedOrIsPreview(page)); + + await _db.ToListAsync(richTextContentQuery, cancellationToken); } catch (Exception ex) { @@ -40,4 +39,9 @@ public async Task TryLoadChildren(PageDbEntity page, CancellationToken cancellat throw; } } + + private Expression> PageMatchesSlugAndPublishedOrIsPreview(PageDbEntity page) + { + return content => content.Slug == page.Slug && (!_contentfulOptions.UsePreview || content.Published); + } } \ No newline at end of file diff --git a/src/Dfe.PlanTech.Application/Dfe.PlanTech.Application.csproj b/src/Dfe.PlanTech.Application/Dfe.PlanTech.Application.csproj index b746d3f75..a743029ad 100644 --- a/src/Dfe.PlanTech.Application/Dfe.PlanTech.Application.csproj +++ b/src/Dfe.PlanTech.Application/Dfe.PlanTech.Application.csproj @@ -7,9 +7,9 @@ - + - + diff --git a/src/Dfe.PlanTech.Application/Helpers/QueryServiceSetup.cs b/src/Dfe.PlanTech.Application/Helpers/QueryServiceSetup.cs index 8788d44d5..d4dbd76e9 100644 --- a/src/Dfe.PlanTech.Application/Helpers/QueryServiceSetup.cs +++ b/src/Dfe.PlanTech.Application/Helpers/QueryServiceSetup.cs @@ -29,7 +29,7 @@ public static IServiceCollection AddCQRSServices(this IServiceCollection service services.AddScoped(); services.AddScoped(); services.AddScoped(); - services.AddScoped(); + services.AddScoped(); return services; } diff --git a/src/Dfe.PlanTech.Application/Persistence/Interfaces/ICmsDbContext.cs b/src/Dfe.PlanTech.Application/Persistence/Interfaces/ICmsDbContext.cs index 92383df4a..d2e0c9db8 100644 --- a/src/Dfe.PlanTech.Application/Persistence/Interfaces/ICmsDbContext.cs +++ b/src/Dfe.PlanTech.Application/Persistence/Interfaces/ICmsDbContext.cs @@ -33,6 +33,7 @@ public interface ICmsDbContext public IQueryable RecommendationPages { get; } public IQueryable RichTextContents { get; } + public IQueryable RichTextContentWithSlugs { get; } public IQueryable RichTextDataDbEntity { get; } @@ -49,8 +50,6 @@ public interface ICmsDbContext public Task GetPageBySlug(string slug, CancellationToken cancellationToken = default); - public IQueryable RichTextContentsByPageSlug(string pageSlug); - public Task FirstOrDefaultAsync(IQueryable queryable, CancellationToken cancellationToken = default); public Task> ToListAsync(IQueryable queryable, CancellationToken cancellationToken = default); } \ No newline at end of file diff --git a/src/Dfe.PlanTech.Application/Submissions/Queries/GetSubmissionStatusesQuery.cs b/src/Dfe.PlanTech.Application/Submissions/Queries/GetSubmissionStatusesQuery.cs index 78da613e7..385a54d2d 100644 --- a/src/Dfe.PlanTech.Application/Submissions/Queries/GetSubmissionStatusesQuery.cs +++ b/src/Dfe.PlanTech.Application/Submissions/Queries/GetSubmissionStatusesQuery.cs @@ -19,13 +19,13 @@ public GetSubmissionStatusesQuery(IPlanTechDbContext db, IUser userHelper) } - public IList GetSectionSubmissionStatuses(IEnumerable sections) + public Task> GetSectionSubmissionStatuses(IEnumerable sections) { int establishmentId = _userHelper.GetEstablishmentId().Result; string sectionStringify = string.Join(',', sections.Select(x => x.Sys.Id)); - return _db.GetSectionStatuses(sectionStringify, establishmentId).ToList(); + return _db.ToListAsync(_db.GetSectionStatuses(sectionStringify, establishmentId)); } public async Task GetSectionSubmissionStatusAsync(int establishmentId, diff --git a/src/Dfe.PlanTech.AzureFunctions/Dfe_PlanTech_AzureFunctions.csproj b/src/Dfe.PlanTech.AzureFunctions/Dfe_PlanTech_AzureFunctions.csproj index f1682bb3a..d44525aba 100644 --- a/src/Dfe.PlanTech.AzureFunctions/Dfe_PlanTech_AzureFunctions.csproj +++ b/src/Dfe.PlanTech.AzureFunctions/Dfe_PlanTech_AzureFunctions.csproj @@ -7,16 +7,16 @@ enable - + - + - + - - - - + + + + diff --git a/src/Dfe.PlanTech.AzureFunctions/Functions/QueueReceiver.cs b/src/Dfe.PlanTech.AzureFunctions/Functions/QueueReceiver.cs index 205f5672b..cdfd843e4 100644 --- a/src/Dfe.PlanTech.AzureFunctions/Functions/QueueReceiver.cs +++ b/src/Dfe.PlanTech.AzureFunctions/Functions/QueueReceiver.cs @@ -62,7 +62,7 @@ private async Task ProcessMessage(ServiceBusReceivedMessage message, ServiceBusM { CmsEvent cmsEvent = GetCmsEvent(message.Subject); - if (ShouldDropMessage(cmsEvent)) + if (ShouldIgnoreMessage(cmsEvent)) { await messageActions.CompleteMessageAsync(message, cancellationToken); return; @@ -71,7 +71,7 @@ private async Task ProcessMessage(ServiceBusReceivedMessage message, ServiceBusM ContentComponentDbEntity mapped = MapMessageToEntity(message); ContentComponentDbEntity? existing = await TryGetExistingEntity(mapped, cancellationToken); - if (!IsNewAndValidComponent(mapped, existing)) + if (!IsValidComponent(mapped)) { await messageActions.CompleteMessageAsync(message, cancellationToken); return; @@ -92,56 +92,54 @@ private async Task ProcessMessage(ServiceBusReceivedMessage message, ServiceBusM } } - private bool ShouldDropMessage(CmsEvent cmsEvent) + private bool IsValidComponent(ContentComponentDbEntity mapped) { - if (cmsEvent == CmsEvent.CREATE) - { - Logger.LogInformation("Dropping received event {cmsEvent}", cmsEvent); - return true; - } - - if (ShouldIgnoreMessage(cmsEvent)) - { - Logger.LogInformation("Receieved {event} but UsePreview is {usePreview} - dropping message", cmsEvent, _contentfulOptions.UsePreview); - return true; - } - - return false; - } - - private bool IsNewAndValidComponent(ContentComponentDbEntity mapped, ContentComponentDbEntity? existing) - { - if (existing != null) return true; + string? nullProperties = string.Join(", ", AnyRequiredPropertyIsNull(mapped)); - if (AnyRequiredPropertyIsNull(mapped)) + if (!string.IsNullOrEmpty(nullProperties)) { - Logger.LogInformation("A required property of the component with ID {id} is null, so the message will be dropped!", mapped.Id); + Logger.LogInformation("Content Component with ID {id} is missing the following required properties: {nullProperties}", mapped.Id, nullProperties); return false; } return true; } - private bool AnyRequiredPropertyIsNull(ContentComponentDbEntity entity) - => _db.Model.FindEntityType(entity.GetType())! + private IEnumerable AnyRequiredPropertyIsNull(ContentComponentDbEntity entity) + => _db.Model.FindEntityType(entity.GetType())! .GetProperties() .Where(prop => !prop.IsNullable) .Select(prop => prop.PropertyInfo) .Where(prop => !prop!.CustomAttributes.Any(atr => atr.GetType() == typeof(DontCopyValueAttribute))) - .Where(prop => prop!.GetValue(entity) == null) - .Any(); + .Where(prop => prop!.GetValue(entity) == null); /// /// Checks if the message with the given CmsEvent should be ignored based on certain conditions. /// /// - /// If we are NOT using preview mode (i.e. we are ignoring drafts), and the event is just a save or autosave, - /// then return true. Otherwise return false. + /// If we recieve a create event, we return true. + /// If we are NOT using preview mode (i.e. we are ignoring drafts), and the event is just a save or autosave, then return true. + /// + /// Else, we return false. /// /// /// private bool ShouldIgnoreMessage(CmsEvent cmsEvent) - => (cmsEvent == CmsEvent.SAVE || cmsEvent == CmsEvent.AUTO_SAVE) && !_contentfulOptions.UsePreview; + { + if (cmsEvent == CmsEvent.CREATE) + { + Logger.LogInformation("Dropping received event {cmsEvent}", cmsEvent); + return true; + } + + if ((cmsEvent == CmsEvent.SAVE || cmsEvent == CmsEvent.AUTO_SAVE) && !_contentfulOptions.UsePreview) + { + Logger.LogInformation("Receieved {event} but UsePreview is {usePreview} - dropping message", cmsEvent, _contentfulOptions.UsePreview); + return true; + } + + return false; + } /// /// Retrieves the CmsEvent based on the provided subject. diff --git a/src/Dfe.PlanTech.AzureFunctions/Mappings/JsonToDbMapper.cs b/src/Dfe.PlanTech.AzureFunctions/Mappings/JsonToDbMapper.cs index f7ff77961..62fa9849f 100644 --- a/src/Dfe.PlanTech.AzureFunctions/Mappings/JsonToDbMapper.cs +++ b/src/Dfe.PlanTech.AzureFunctions/Mappings/JsonToDbMapper.cs @@ -33,7 +33,7 @@ public virtual TEntity ToEntity(CmsWebHookPayload payload) } var asJson = JsonSerializer.Serialize(values, JsonOptions); - var serialised = JsonSerializer.Deserialize(asJson, JsonOptions) ?? throw new NullReferenceException("Null returned"); + var serialised = JsonSerializer.Deserialize(asJson, JsonOptions) ?? throw new ArgumentNullException("Null returned"); return serialised; } diff --git a/src/Dfe.PlanTech.AzureFunctions/Mappings/JsonToEntityMappers.cs b/src/Dfe.PlanTech.AzureFunctions/Mappings/JsonToEntityMappers.cs index 55a5bca33..8c9835ef3 100644 --- a/src/Dfe.PlanTech.AzureFunctions/Mappings/JsonToEntityMappers.cs +++ b/src/Dfe.PlanTech.AzureFunctions/Mappings/JsonToEntityMappers.cs @@ -28,9 +28,9 @@ private JsonToDbMapper GetMapperForPayload(CmsWebHookPayload payload) { var contentType = payload.Sys.ContentType.Sys.Id; - return _mappers.FirstOrDefault(mapper => mapper.AcceptsContentType(contentType)) ?? throw new Exception($"Could not find mapper for {contentType}"); + return _mappers.FirstOrDefault(mapper => mapper.AcceptsContentType(contentType)) ?? throw new KeyNotFoundException($"Could not find mapper for {contentType}"); } private CmsWebHookPayload SerialiseToPayload(string requestBody) - => JsonSerializer.Deserialize(requestBody, _jsonSerialiserOptions) ?? throw new Exception($"Could not serialise body to {typeof(CmsWebHookPayload)}. Body was {requestBody}"); + => JsonSerializer.Deserialize(requestBody, _jsonSerialiserOptions) ?? throw new InvalidOperationException($"Could not serialise body to {typeof(CmsWebHookPayload)}. Body was {requestBody}"); } \ No newline at end of file diff --git a/src/Dfe.PlanTech.AzureFunctions/Mappings/PageMapper.cs b/src/Dfe.PlanTech.AzureFunctions/Mappings/PageMapper.cs index b092a06be..2f5d41df5 100644 --- a/src/Dfe.PlanTech.AzureFunctions/Mappings/PageMapper.cs +++ b/src/Dfe.PlanTech.AzureFunctions/Mappings/PageMapper.cs @@ -16,9 +16,15 @@ public PageMapper(CmsDbContext db, ILogger logger, JsonSerializerOpt _db = db; } + /// + /// Create joins for content, and before title content, and map the title ID to the correct expected name. + /// + /// + /// + /// public override Dictionary PerformAdditionalMapping(Dictionary values) { - var id = values["id"]?.ToString() ?? throw new Exception("Not found id"); + var id = values["id"]?.ToString() ?? throw new KeyNotFoundException("Not found id"); values = MoveValueToNewKey(values, "title", "titleId"); @@ -30,18 +36,27 @@ public PageMapper(CmsDbContext db, ILogger logger, JsonSerializerOpt private void UpdateContentIds(Dictionary values, string pageId, string currentKey) { + bool isBeforeTitleContent = currentKey == BeforeTitleContentKey; + if (values.TryGetValue(currentKey, out object? contents) && contents is object[] inners) { - foreach (var inner in inners) + for (var index = 0; index < inners.Length; index++) { - CreatePageContentEntity(inner, pageId, currentKey == BeforeTitleContentKey); + CreatePageContentEntity(inners[index], index, pageId, isBeforeTitleContent); } values.Remove(currentKey); } } - private void CreatePageContentEntity(object inner, string pageId, bool isBeforeTitleContent) + /// + /// Creates the necessary for the relationship + /// + /// The child content ID. + /// Order of the content for the page + /// + /// + private void CreatePageContentEntity(object inner, int order, string pageId, bool isBeforeTitleContent) { if (inner is not string contentId) { @@ -52,6 +67,7 @@ private void CreatePageContentEntity(object inner, string pageId, bool isBeforeT var pageContent = new PageContentDbEntity() { PageId = pageId, + Order = order }; if (isBeforeTitleContent) diff --git a/src/Dfe.PlanTech.AzureFunctions/Mappings/TextBodyMapper.cs b/src/Dfe.PlanTech.AzureFunctions/Mappings/TextBodyMapper.cs index 8778e20e7..40542d9b2 100644 --- a/src/Dfe.PlanTech.AzureFunctions/Mappings/TextBodyMapper.cs +++ b/src/Dfe.PlanTech.AzureFunctions/Mappings/TextBodyMapper.cs @@ -16,12 +16,12 @@ public TextBodyMapper(RichTextContentMapper richTextMapper, ILogger PerformAdditionalMapping(Dictionary values) { - var richText = (values["richText"] ?? throw new Exception($"No rich text value found")) as JsonNode; + var richText = (values["richText"] ?? throw new KeyNotFoundException($"No rich text value found")) as JsonNode; - var deserialised = richText.Deserialize(JsonOptions) ?? throw new Exception($"Could not map to {typeof(RichTextContent)}"); + var deserialised = richText.Deserialize(JsonOptions) ?? throw new InvalidOperationException($"Could not map to {typeof(RichTextContent)}"); values["richText"] = JsonNode.Parse(JsonSerializer.Serialize(_richTextMapper.MapToDbEntity(deserialised), JsonOptions)); return values; } -} \ No newline at end of file +} diff --git a/src/Dfe.PlanTech.DatabaseUpgrader/Dfe.PlanTech.DatabaseUpgrader.csproj b/src/Dfe.PlanTech.DatabaseUpgrader/Dfe.PlanTech.DatabaseUpgrader.csproj index 11207125d..53d8e64ca 100644 --- a/src/Dfe.PlanTech.DatabaseUpgrader/Dfe.PlanTech.DatabaseUpgrader.csproj +++ b/src/Dfe.PlanTech.DatabaseUpgrader/Dfe.PlanTech.DatabaseUpgrader.csproj @@ -12,8 +12,8 @@ - - + + diff --git a/src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2024/20240209_1448_FixSelectAllRichTextContentForPageSlugFunction.sql b/src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2024/20240209_1448_FixSelectAllRichTextContentForPageSlugFunction.sql new file mode 100644 index 000000000..53afb333d --- /dev/null +++ b/src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2024/20240209_1448_FixSelectAllRichTextContentForPageSlugFunction.sql @@ -0,0 +1,39 @@ +ALTER FUNCTION [Contentful].[SelectAllRichTextContentForPageSlug] ( + @PageSlug NVARCHAR(MAX) +) +RETURNS @ReturnTable table(Id BIGINT, [Value] NVARCHAR(MAX), NodeType NVARCHAR(MAX), DataId BIGINT, ParentId BIGINT) +BEGIN + DECLARE @ContentComponentIds TABLE (Id NVARCHAR(MAX)) + DECLARE @RichTextIds TABLE (Id bigint) + + --Get content components for the page + INSERT INTO @ContentComponentIds + SELECT ISNULL(PC.BeforeContentComponentId, PC.ContentComponentId) AS ContentComponentId + FROM [Contentful].[PageContents] PC + LEFT JOIN [Contentful].[Pages] P ON PC.PageId = P.Id + WHERE P.Slug = @PageSlug + + --Get rich text ids for text bodies and warnings + INSERT INTO @RichTextIds + SELECT DISTINCT TB.RichTextId + FROM [Contentful].[TextBodies] AS TB + JOIN @ContentComponentIds AS CC ON TB.Id = CC.Id + UNION + SELECT DISTINCT TB.RichTextId + FROM [Contentful].[Warnings] AS W + LEFT JOIN [Contentful].[TextBodies] AS TB ON W.TextId = TB.ID + JOIN @ContentComponentIds AS CC ON W.Id = CC.Id + + --For each rich text id, execute the SelectAllRichTextContentForParentId function and add to the return table + DECLARE @idColumn BIGINT + + SELECT @idColumn = min(Id) FROM @RichTextIds + + WHILE @idColumn IS NOT NULL + BEGIN + INSERT INTO @ReturnTable SELECT [Id], [Value], [NodeType], [DataId], [ParentId] FROM [Contentful].[SelectAllRichTextContentForParentId](@idColumn) + SELECT @idColumn = min(Id) FROM @RichTextIds WHERE Id > @idColumn + END + + RETURN +END \ No newline at end of file diff --git a/src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2024/20240209_1647_CreateRichTextContentWithPageSlugView.sql b/src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2024/20240209_1647_CreateRichTextContentWithPageSlugView.sql new file mode 100644 index 000000000..9136501a6 --- /dev/null +++ b/src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2024/20240209_1647_CreateRichTextContentWithPageSlugView.sql @@ -0,0 +1,77 @@ +CREATE +OR ALTER VIEW [Contentful].[RichTextContentsBySlug] AS ( + SELECT + [Slug], + [Id], + [Value], + [NodeType], + [DataId], + [ParentId], + [Published], + [Archived], + [Deleted] + FROM + ( + SELECT + [RichTextId], + [Slug], + [Archived], + [Deleted], + [Published] + FROM + ( + --- Get RichTextIds for all text bodies and warnings + SELECT + [RichTextId], + [Id] AS [ContentId] + FROM + [Contentful].[TextBodies] AS TB + UNION + SELECT + [RichTextId], + [TB].[Id] as [ContentId] + FROM + [Contentful].[Warnings] AS W + LEFT JOIN [Contentful].[TextBodies] AS TB ON [W].[TextId] = [TB].[Id] + ) AS RichTexts + LEFT JOIN --Get all contents for a page + ( + SELECT + MAX([Slug]) AS [Slug], + [ContentId] + FROM + ( + SELECT + ISNULL( + [BeforeContentComponentId], + [ContentComponentId] + ) AS [ContentId], + [P].[Slug] + FROM + [Contentful].[PageContents] PC + LEFT JOIN [Contentful].[Pages] P ON [PC].[PageId] = [P].[Id] + ) AS PC + GROUP BY + [PC].[ContentId] + ) AS Contents ON [Contents].[ContentId] = [RichTexts].[ContentId] + LEFT JOIN( + SELECT + [Id], + [Archived], + [Published], + [DELETED] + FROM + [Contentful].[ContentComponents] + ) AS CC ON [CC].[Id] = [RichTexts].[ContentId] + ) AS RichTextContents + OUTER APPLY ( + SELECT + [Id], + [Value], + [NodeType], + [DataId], + [ParentId] + FROM + [Contentful].[SelectAllRichTextContentForParentId]([RichTextContents].[RichTextId]) + ) AS RichTextContentsWithSlug +) \ No newline at end of file diff --git a/src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2024/20240219_1407_FixWarningComponent.sql b/src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2024/20240219_1407_FixWarningComponent.sql new file mode 100644 index 000000000..d1049d986 --- /dev/null +++ b/src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2024/20240219_1407_FixWarningComponent.sql @@ -0,0 +1,71 @@ +CREATE +OR ALTER VIEW [Contentful].[RichTextContentsBySlug] AS ( + SELECT + [Slug], + [Id], + [Value], + [NodeType], + [DataId], + [ParentId], + [Published], + [Archived], + [Deleted] + FROM + ( + SELECT + [RichTextId], + [Slug], + [Archived], + [Deleted], + [Published] + FROM + ( + --- Get RichTextIds for all text bodies and warnings + SELECT + [RichTextId], + ISNULL([Warning].[Id], [TB].[Id]) AS ContentId + FROM + [Contentful].[TextBodies] AS TB + LEFT JOIN [Contentful].Warnings AS Warning ON [Warning].[TextId] = [TB].[Id] + ) AS RichTexts + LEFT JOIN --Get all contents for a page + ( + SELECT + MAX([Slug]) AS [Slug], + [ContentId] + FROM + ( + SELECT + ISNULL( + [BeforeContentComponentId], + [ContentComponentId] + ) AS [ContentId], + [P].[Slug] + FROM + [Contentful].[PageContents] PC + LEFT JOIN [Contentful].[Pages] P ON [PC].[PageId] = [P].[Id] + ) AS PC + GROUP BY + [PC].[ContentId] + ) AS Contents ON [Contents].[ContentId] = [RichTexts].[ContentId] + LEFT JOIN( + SELECT + [Id], + [Archived], + [Published], + [DELETED] + FROM + [Contentful].[ContentComponents] + ) AS CC ON [CC].[Id] = [RichTexts].[ContentId] + ) AS RichTextContents + OUTER APPLY ( + SELECT + [Id], + [Value], + [NodeType], + [DataId], + [ParentId] + FROM + [Contentful].[SelectAllRichTextContentForParentId]([RichTextContents].[RichTextId]) + ) AS RichTextContentsWithSlug +) \ No newline at end of file diff --git a/src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2024/20240229_1115_AddOrderColumnToContentComponentTable.sql b/src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2024/20240229_1115_AddOrderColumnToContentComponentTable.sql new file mode 100644 index 000000000..3c5d39ab2 --- /dev/null +++ b/src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2024/20240229_1115_AddOrderColumnToContentComponentTable.sql @@ -0,0 +1,2 @@ +ALTER TABLE Contentful.PageContents +ADD [Order] int \ No newline at end of file diff --git a/src/Dfe.PlanTech.Domain/Content/Interfaces/IAccordion.cs b/src/Dfe.PlanTech.Domain/Content/Interfaces/IAccordion.cs new file mode 100644 index 000000000..fd9f56f5d --- /dev/null +++ b/src/Dfe.PlanTech.Domain/Content/Interfaces/IAccordion.cs @@ -0,0 +1,8 @@ +namespace Dfe.PlanTech.Domain.Content.Interfaces; + +public interface IAccordion +{ + public int Order { get; set; } + public string Title { get; set; } + public string Heading { get; set; } +} \ No newline at end of file diff --git a/src/Dfe.PlanTech.Domain/Content/Models/Accordion.cs b/src/Dfe.PlanTech.Domain/Content/Models/Accordion.cs new file mode 100644 index 000000000..dd1f9ae56 --- /dev/null +++ b/src/Dfe.PlanTech.Domain/Content/Models/Accordion.cs @@ -0,0 +1,11 @@ +using Dfe.PlanTech.Domain.Content.Interfaces; + +namespace Dfe.PlanTech.Domain.Content.Models; + +public class Accordion : IAccordion +{ + public int Order { get; set; } + public string Title { get; set; } + + public string Heading { get; set; } +} \ No newline at end of file diff --git a/src/Dfe.PlanTech.Domain/Content/Models/ContentComponentDbEntity.cs b/src/Dfe.PlanTech.Domain/Content/Models/ContentComponentDbEntity.cs index 894839f0b..31ce7f5ac 100644 --- a/src/Dfe.PlanTech.Domain/Content/Models/ContentComponentDbEntity.cs +++ b/src/Dfe.PlanTech.Domain/Content/Models/ContentComponentDbEntity.cs @@ -17,5 +17,16 @@ public abstract class ContentComponentDbEntity : IContentComponentDbEntity public List BeforeTitleContentPages { get; set; } = []; + /// + /// Joins for + /// + public List BeforeTitleContentPagesJoins { get; set; } = []; + public List ContentPages { get; set; } = []; + + /// + /// Joins for + /// + public List ContentPagesJoins { get; set; } = []; + } \ No newline at end of file diff --git a/src/Dfe.PlanTech.Domain/Content/Models/Page.cs b/src/Dfe.PlanTech.Domain/Content/Models/Page.cs index 55f5f5c8a..84df09075 100644 --- a/src/Dfe.PlanTech.Domain/Content/Models/Page.cs +++ b/src/Dfe.PlanTech.Domain/Content/Models/Page.cs @@ -20,11 +20,11 @@ public class Page : ContentComponent, IPageContent public string? SectionTitle { get; set; } - public List BeforeTitleContent { get; init; } = new(); + public List BeforeTitleContent { get; init; } = []; public Title? Title { get; init; } public string? OrganisationName { get; set; } - public List Content { get; init; } = new(); + public List Content { get; init; } = []; } diff --git a/src/Dfe.PlanTech.Domain/Content/Models/PageContentDbEntity.cs b/src/Dfe.PlanTech.Domain/Content/Models/PageContentDbEntity.cs index 331116911..4c42f7f78 100644 --- a/src/Dfe.PlanTech.Domain/Content/Models/PageContentDbEntity.cs +++ b/src/Dfe.PlanTech.Domain/Content/Models/PageContentDbEntity.cs @@ -17,4 +17,9 @@ public class PageContentDbEntity public string? BeforeContentComponentId { get; set; } public ContentComponentDbEntity? BeforeContentComponent { get; set; } + + /// + /// What order the component should be in in its respective section (e.g. before/after) + /// + public int Order { get; set; } } diff --git a/src/Dfe.PlanTech.Domain/Content/Models/PageDbEntity.cs b/src/Dfe.PlanTech.Domain/Content/Models/PageDbEntity.cs index 2b56666ad..3dd9d6fdf 100644 --- a/src/Dfe.PlanTech.Domain/Content/Models/PageDbEntity.cs +++ b/src/Dfe.PlanTech.Domain/Content/Models/PageDbEntity.cs @@ -1,3 +1,4 @@ +using System.ComponentModel.DataAnnotations.Schema; using Dfe.PlanTech.Domain.Content.Interfaces; using Dfe.PlanTech.Domain.Questionnaire.Models; @@ -19,16 +20,38 @@ public class PageDbEntity : ContentComponentDbEntity, IPage BeforeTitleContent { get; set; } = new(); + public List BeforeTitleContent { get; set; } = []; public TitleDbEntity? Title { get; set; } public string? TitleId { get; set; } - public List Content { get; set; } = new(); + public List Content { get; set; } = []; public RecommendationPageDbEntity? RecommendationPage { get; set; } public SectionDbEntity? Section { get; set; } + /// + /// Combined joins for and + /// + public List AllPageContents { get; set; } = []; + + public void OrderContents() + { + BeforeTitleContent = OrderContents(BeforeTitleContent, pageContent => pageContent.BeforeContentComponentId).ToList(); + Content = OrderContents(Content, pageContent => pageContent.ContentComponentId).ToList(); + } + + private IEnumerable OrderContents(List contents, Func idSelector) + => contents.Join(AllPageContents, + content => content.Id, + idSelector, + (content, pageContent) => new + { + content, + order = pageContent.Order + }) + .OrderBy(content => content.order) + .Select(content => content.content); } \ No newline at end of file diff --git a/src/Dfe.PlanTech.Domain/Content/Models/RichTextContentDbEntity.cs b/src/Dfe.PlanTech.Domain/Content/Models/RichTextContentDbEntity.cs index 202636224..c19016a22 100644 --- a/src/Dfe.PlanTech.Domain/Content/Models/RichTextContentDbEntity.cs +++ b/src/Dfe.PlanTech.Domain/Content/Models/RichTextContentDbEntity.cs @@ -3,7 +3,6 @@ using System.ComponentModel.DataAnnotations.Schema; namespace Dfe.PlanTech.Domain.Content.Models; - /// /// Content for a 'RichText' field in Contentful /// @@ -20,16 +19,17 @@ public class RichTextContentDbEntity : IRichTextContent Marks { get; set; } = new(); + public List Marks { get; set; } = []; /// /// Children /// - public List Content { get; set; } = new(); + public List Content { get; set; } = []; public RichTextContentDbEntity? Parent { get; set; } public long? ParentId { get; set; } public ComponentDropDownDbEntity? DropDown { get; set; } + } \ No newline at end of file diff --git a/src/Dfe.PlanTech.Domain/Content/Models/RichTextContentWithSlugDbEntity.cs b/src/Dfe.PlanTech.Domain/Content/Models/RichTextContentWithSlugDbEntity.cs new file mode 100644 index 000000000..19cb19829 --- /dev/null +++ b/src/Dfe.PlanTech.Domain/Content/Models/RichTextContentWithSlugDbEntity.cs @@ -0,0 +1,20 @@ +namespace Dfe.PlanTech.Domain.Content.Models; + + +/// +/// Represents a rich text content entity with the corresponding slug for the page that it is loaded on +/// +/// +/// Is loaded by a view +/// +public class RichTextContentWithSlugDbEntity : RichTextContentDbEntity +{ + //Loaded from page that the parent entity (e.g. TextBodyDbEntity) belongs to + public string Slug { get; set; } = null!; + + //Loaded from the parent entity + public bool Archived { get; set; } + public bool Deleted { get; set; } + public bool Published { get; set; } + +} diff --git a/src/Dfe.PlanTech.Domain/Content/Models/WarningComponentDbEntity.cs b/src/Dfe.PlanTech.Domain/Content/Models/WarningComponentDbEntity.cs index 3abc5c9d6..e6c972f7a 100644 --- a/src/Dfe.PlanTech.Domain/Content/Models/WarningComponentDbEntity.cs +++ b/src/Dfe.PlanTech.Domain/Content/Models/WarningComponentDbEntity.cs @@ -20,4 +20,9 @@ public RichTextContentDbEntity RichText [NotMapped] [DontCopyValue] public long RichTextId => Text.RichTextId; +} + +public class RichTextContentWithPageSlug +{ + } \ No newline at end of file diff --git a/src/Dfe.PlanTech.Domain/Interfaces/IGetSubmissionStatusesQuery.cs b/src/Dfe.PlanTech.Domain/Interfaces/IGetSubmissionStatusesQuery.cs index 5d5aa1c49..f3510a379 100644 --- a/src/Dfe.PlanTech.Domain/Interfaces/IGetSubmissionStatusesQuery.cs +++ b/src/Dfe.PlanTech.Domain/Interfaces/IGetSubmissionStatusesQuery.cs @@ -5,7 +5,7 @@ namespace Dfe.PlanTech.Domain.Interfaces; public interface IGetSubmissionStatusesQuery { - IList GetSectionSubmissionStatuses(IEnumerable sections); + Task> GetSectionSubmissionStatuses(IEnumerable sections); Task GetSectionSubmissionStatusAsync(int establishmentId, ISectionComponent section, diff --git a/src/Dfe.PlanTech.Domain/Questionnaire/Interfaces/IRecommendationChunk.cs b/src/Dfe.PlanTech.Domain/Questionnaire/Interfaces/IRecommendationChunk.cs new file mode 100644 index 000000000..cac3dbc51 --- /dev/null +++ b/src/Dfe.PlanTech.Domain/Questionnaire/Interfaces/IRecommendationChunk.cs @@ -0,0 +1,20 @@ +using Dfe.PlanTech.Domain.Content.Interfaces; + +namespace Dfe.PlanTech.Domain.Questionnaire.Interfaces; + +public interface IRecommendationChunk +{ + public string Title { get; } +} + +public interface IRecommendationChunk : IRecommendationChunk +where THeader : IHeader +where TContentComponent : IContentComponent +where TAnswer : IAnswer +{ + public THeader Header { get; } + + public List Content { get; } + + public List Answers { get; } +} \ No newline at end of file diff --git a/src/Dfe.PlanTech.Domain/Questionnaire/Interfaces/IRecommendationIntro.cs b/src/Dfe.PlanTech.Domain/Questionnaire/Interfaces/IRecommendationIntro.cs new file mode 100644 index 000000000..7bb2a1c63 --- /dev/null +++ b/src/Dfe.PlanTech.Domain/Questionnaire/Interfaces/IRecommendationIntro.cs @@ -0,0 +1,17 @@ +using Dfe.PlanTech.Domain.Content.Interfaces; + +namespace Dfe.PlanTech.Domain.Questionnaire.Interfaces; + +public interface IRecommendationIntro +{ + public string Maturity { get; } +} + +public interface IRecommendationIntro : IRecommendationIntro +where THeader : IHeader +where TContentComponent : IContentComponent +{ + public THeader Header { get; } + + public List Content { get; } +} \ No newline at end of file diff --git a/src/Dfe.PlanTech.Domain/Questionnaire/Interfaces/IRecommendationSection.cs b/src/Dfe.PlanTech.Domain/Questionnaire/Interfaces/IRecommendationSection.cs new file mode 100644 index 000000000..e0956b468 --- /dev/null +++ b/src/Dfe.PlanTech.Domain/Questionnaire/Interfaces/IRecommendationSection.cs @@ -0,0 +1,15 @@ +using Dfe.PlanTech.Domain.Content.Models; +using Dfe.PlanTech.Domain.Questionnaire.Models; + +namespace Dfe.PlanTech.Domain.Questionnaire.Interfaces; + +public interface IRecommendationSection { } + +public interface IRecommendationSection : IRecommendationSection +where TAnswer : IAnswer +where TRecommendationChunk : IRecommendationChunk +{ + public List Answers { get; } + + public List Chunks { get; } +} \ No newline at end of file diff --git a/src/Dfe.PlanTech.Domain/Questionnaire/Interfaces/ISubTopicRecommendation.cs b/src/Dfe.PlanTech.Domain/Questionnaire/Interfaces/ISubTopicRecommendation.cs new file mode 100644 index 000000000..e3a8e4db9 --- /dev/null +++ b/src/Dfe.PlanTech.Domain/Questionnaire/Interfaces/ISubTopicRecommendation.cs @@ -0,0 +1,17 @@ +using Dfe.PlanTech.Domain.Questionnaire.Models; + +namespace Dfe.PlanTech.Domain.Questionnaire.Interfaces; + +public interface ISubTopicRecommendation { } + +public interface ISubTopicRecommendation : ISubTopicRecommendation +where TRecommendationIntro : IRecommendationIntro +where TRecommendationSection : IRecommendationSection +where TSection : ISection +{ + public List Intros { get; } + + public TRecommendationSection Section { get; } + + public TSection Subtopic { get; } +} \ No newline at end of file diff --git a/src/Dfe.PlanTech.Domain/Questionnaire/Models/Category.cs b/src/Dfe.PlanTech.Domain/Questionnaire/Models/Category.cs index ed929b91d..994678373 100644 --- a/src/Dfe.PlanTech.Domain/Questionnaire/Models/Category.cs +++ b/src/Dfe.PlanTech.Domain/Questionnaire/Models/Category.cs @@ -8,7 +8,7 @@ public class Category : ContentComponent, ICategoryComponent { public Header Header { get; set; } = null!; public List
Sections { get; set; } = new(); - public IList SectionStatuses { get; set; } = new List(); + public IList SectionStatuses { get; set; } = []; public int Completed { get; set; } public bool RetrievalError { get; set; } } \ No newline at end of file diff --git a/src/Dfe.PlanTech.Domain/Questionnaire/Models/RecommendationChunk.cs b/src/Dfe.PlanTech.Domain/Questionnaire/Models/RecommendationChunk.cs new file mode 100644 index 000000000..ce7e4e41a --- /dev/null +++ b/src/Dfe.PlanTech.Domain/Questionnaire/Models/RecommendationChunk.cs @@ -0,0 +1,15 @@ +using Dfe.PlanTech.Domain.Content.Models; +using Dfe.PlanTech.Domain.Questionnaire.Interfaces; + +namespace Dfe.PlanTech.Domain.Questionnaire.Models; + +public class RecommendationChunk : ContentComponent, IRecommendationChunk +{ + public string Title { get; init; } = null!; + + public Header Header { get; init; } = null!; + + public List Content { get; init; } = []; + + public List Answers { get; init; } = []; +} diff --git a/src/Dfe.PlanTech.Domain/Questionnaire/Models/RecommendationIntro.cs b/src/Dfe.PlanTech.Domain/Questionnaire/Models/RecommendationIntro.cs new file mode 100644 index 000000000..ea7fbc9d0 --- /dev/null +++ b/src/Dfe.PlanTech.Domain/Questionnaire/Models/RecommendationIntro.cs @@ -0,0 +1,13 @@ +using Dfe.PlanTech.Domain.Content.Models; +using Dfe.PlanTech.Domain.Questionnaire.Interfaces; + +namespace Dfe.PlanTech.Domain.Questionnaire.Models; + +public class RecommendationIntro : ContentComponent, IRecommendationIntro +{ + public Header Header { get; init; } = null!; + + public string Maturity { get; init; } = null!; + + public List Content { get; init; } = []; +} \ No newline at end of file diff --git a/src/Dfe.PlanTech.Domain/Questionnaire/Models/RecommendationSection.cs b/src/Dfe.PlanTech.Domain/Questionnaire/Models/RecommendationSection.cs new file mode 100644 index 000000000..836dead21 --- /dev/null +++ b/src/Dfe.PlanTech.Domain/Questionnaire/Models/RecommendationSection.cs @@ -0,0 +1,11 @@ +using Dfe.PlanTech.Domain.Content.Models; +using Dfe.PlanTech.Domain.Questionnaire.Interfaces; + +namespace Dfe.PlanTech.Domain.Questionnaire.Models; + +public class RecommendationSection : ContentComponent, IRecommendationSection +{ + public List Answers { get; init; } = []; + + public List Chunks { get; init; } = []; +} \ No newline at end of file diff --git a/src/Dfe.PlanTech.Domain/Questionnaire/Models/SubTopicRecommendation.cs b/src/Dfe.PlanTech.Domain/Questionnaire/Models/SubTopicRecommendation.cs new file mode 100644 index 000000000..9aec58b60 --- /dev/null +++ b/src/Dfe.PlanTech.Domain/Questionnaire/Models/SubTopicRecommendation.cs @@ -0,0 +1,13 @@ +using Dfe.PlanTech.Domain.Content.Models; +using Dfe.PlanTech.Domain.Questionnaire.Interfaces; + +namespace Dfe.PlanTech.Domain.Questionnaire.Models; + +public class SubTopicRecommendation : ContentComponent, ISubTopicRecommendation +{ + public List Intros { get; init; } = []; + + public RecommendationSection Section { get; init; } = null!; + + public Section Subtopic { get; init; } = null!; +} \ No newline at end of file diff --git a/src/Dfe.PlanTech.Infrastructure.Contentful/Helpers/GetEntitiesException.cs b/src/Dfe.PlanTech.Infrastructure.Contentful/Helpers/GetEntitiesException.cs index 0dfd3812b..0f9f08f13 100644 --- a/src/Dfe.PlanTech.Infrastructure.Contentful/Helpers/GetEntitiesException.cs +++ b/src/Dfe.PlanTech.Infrastructure.Contentful/Helpers/GetEntitiesException.cs @@ -3,6 +3,10 @@ namespace Dfe.PlanTech.Infrastructure.Contentful.Helpers; [Serializable] -public class GetEntitiesException(string? message) : Exception(message), ISerializable +public class GetEntitiesException(string? message) : Exception(message) { + + protected GetEntitiesException(SerializationInfo info, StreamingContext context) : this(null) + { + } } \ No newline at end of file diff --git a/src/Dfe.PlanTech.Infrastructure.Contentful/Persistence/QueryBuilders.cs b/src/Dfe.PlanTech.Infrastructure.Contentful/Persistence/QueryBuilders.cs index d9f6fdcfa..b4b660fbd 100644 --- a/src/Dfe.PlanTech.Infrastructure.Contentful/Persistence/QueryBuilders.cs +++ b/src/Dfe.PlanTech.Infrastructure.Contentful/Persistence/QueryBuilders.cs @@ -96,7 +96,7 @@ public static List> QueryStringValues(this Query { var fieldInfo = queryBuilder.GetType().GetField(QueryBuilderStringValuesFieldName, BindingFlags.NonPublic | BindingFlags.Instance) ?? throw new MissingFieldException($"Couldn't find field {QueryBuilderStringValuesFieldName}"); - var value = fieldInfo.GetValue(queryBuilder) ?? throw new NullReferenceException($"{QueryBuilderStringValuesFieldName} is null in QueryBuilder"); + var value = fieldInfo.GetValue(queryBuilder) ?? throw new ArgumentNullException($"{QueryBuilderStringValuesFieldName} is null in QueryBuilder"); return value is List> list ? list : throw new InvalidCastException($"Expected {value} to be {typeof(List>)} but is actually {value!.GetType()}"); } diff --git a/src/Dfe.PlanTech.Infrastructure.Data/CmsDbContext.cs b/src/Dfe.PlanTech.Infrastructure.Data/CmsDbContext.cs index 5a30dcc4b..def379ab7 100644 --- a/src/Dfe.PlanTech.Infrastructure.Data/CmsDbContext.cs +++ b/src/Dfe.PlanTech.Infrastructure.Data/CmsDbContext.cs @@ -26,6 +26,7 @@ public class CmsDbContext : DbContext, ICmsDbContext public DbSet Categories { get; set; } public DbSet ComponentDropDowns { get; set; } + public DbSet ContentComponents { get; set; } public DbSet Headers { get; set; } @@ -42,6 +43,8 @@ public class CmsDbContext : DbContext, ICmsDbContext public DbSet RecommendationPages { get; set; } public DbSet RichTextContents { get; set; } + public DbSet RichTextContentWithSlugs { get; set; } + public DbSet RichTextDataDbEntity { get; set; } public DbSet RichTextMarkDbEntity { get; set; } @@ -67,6 +70,9 @@ public class CmsDbContext : DbContext, ICmsDbContext IQueryable ICmsDbContext.Questions => Questions; IQueryable ICmsDbContext.RecommendationPages => RecommendationPages; IQueryable ICmsDbContext.RichTextContents => RichTextContents; + IQueryable ICmsDbContext.RichTextContentWithSlugs => RichTextContentWithSlugs + .Include(rt => rt.Data) + .Include(rt => rt.Marks); IQueryable ICmsDbContext.RichTextDataDbEntity => RichTextDataDbEntity; IQueryable ICmsDbContext.RichTextMarkDbEntity => RichTextMarkDbEntity; IQueryable ICmsDbContext.Sections => Sections; @@ -132,11 +138,11 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { entity.HasMany(page => page.BeforeTitleContent) - .WithMany(c => c.BeforeTitleContentPages) - .UsingEntity( - left => left.HasOne(pageContent => pageContent.BeforeContentComponent).WithMany().HasForeignKey("BeforeContentComponentId").OnDelete(DeleteBehavior.Restrict), - right => right.HasOne(pageContent => pageContent.Page).WithMany().HasForeignKey("PageId").OnDelete(DeleteBehavior.Restrict) - ); + .WithMany(c => c.BeforeTitleContentPages) + .UsingEntity( + left => left.HasOne(pageContent => pageContent.BeforeContentComponent).WithMany().HasForeignKey("BeforeContentComponentId").OnDelete(DeleteBehavior.Restrict), + right => right.HasOne(pageContent => pageContent.Page).WithMany().HasForeignKey("PageId").OnDelete(DeleteBehavior.Restrict) + ); entity.HasMany(page => page.Content) .WithMany(c => c.ContentPages) @@ -150,6 +156,15 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) entity.ToTable("Pages", Schema); }); + modelBuilder.Entity(entity => + { + entity.HasOne(pc => pc.BeforeContentComponent).WithMany(c => c.BeforeTitleContentPagesJoins); + + entity.HasOne(pc => pc.ContentComponent).WithMany(c => c.ContentPagesJoins); + + entity.HasOne(pc => pc.Page).WithMany(p => p.AllPageContents); + }); + modelBuilder.Entity().ToTable("Questions", Schema); modelBuilder.Entity(entity => @@ -161,11 +176,14 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.ToTable("RichTextContents", Schema); - entity.Navigation(rt => rt.Marks).AutoInclude(); - entity.Navigation(rt => rt.Data).AutoInclude(); }); + modelBuilder.Entity(entity => + { + entity.ToView("RichTextContentsBySlug"); + }); + + modelBuilder.Entity(entity => { entity.HasOne(section => section.InterstitialPage) @@ -184,7 +202,6 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.Navigation(tb => tb.RichText).AutoInclude(); }); modelBuilder.Entity(entity => @@ -210,17 +227,12 @@ private Expression> ShouldShowEntity() public Task GetPageBySlug(string slug, CancellationToken cancellationToken = default) => Pages.Include(page => page.BeforeTitleContent) - .Include(page => page.Content) - .Include(page => page.Title) - .AsSplitQuery() - .FirstOrDefaultAsync(page => page.Slug == slug, cancellationToken); - - public IQueryable RichTextContentsByPageSlug(string pageSlug) - => RichTextContents.FromSql($"SELECT * FROM [Contentful].[SelectAllRichTextContentForPageSlug]({pageSlug})"); + .Include(page => page.Content) + .Include(page => page.Title) + .AsSplitQuery() + .FirstOrDefaultAsync(page => page.Slug == slug, cancellationToken); - public Task> ToListAsync(IQueryable queryable, CancellationToken cancellationToken = default) -=> queryable.ToListAsync(cancellationToken: cancellationToken); + public Task> ToListAsync(IQueryable queryable, CancellationToken cancellationToken = default) => queryable.ToListAsync(cancellationToken: cancellationToken); - public Task FirstOrDefaultAsync(IQueryable queryable, CancellationToken cancellationToken = default) - => queryable.FirstOrDefaultAsync(cancellationToken); + public Task FirstOrDefaultAsync(IQueryable queryable, CancellationToken cancellationToken = default) => queryable.FirstOrDefaultAsync(cancellationToken); } \ No newline at end of file diff --git a/src/Dfe.PlanTech.Infrastructure.Data/Dfe.PlanTech.Infrastructure.Data.csproj b/src/Dfe.PlanTech.Infrastructure.Data/Dfe.PlanTech.Infrastructure.Data.csproj index d0a733309..609a0061f 100644 --- a/src/Dfe.PlanTech.Infrastructure.Data/Dfe.PlanTech.Infrastructure.Data.csproj +++ b/src/Dfe.PlanTech.Infrastructure.Data/Dfe.PlanTech.Infrastructure.Data.csproj @@ -8,11 +8,10 @@ - - - - + + + + diff --git a/src/Dfe.PlanTech.Infrastructure.SignIn/Dfe.PlanTech.Infrastructure.SignIn.csproj b/src/Dfe.PlanTech.Infrastructure.SignIn/Dfe.PlanTech.Infrastructure.SignIn.csproj index 9e646cb04..f02b9a1b8 100644 --- a/src/Dfe.PlanTech.Infrastructure.SignIn/Dfe.PlanTech.Infrastructure.SignIn.csproj +++ b/src/Dfe.PlanTech.Infrastructure.SignIn/Dfe.PlanTech.Infrastructure.SignIn.csproj @@ -7,8 +7,8 @@ - - + + diff --git a/src/Dfe.PlanTech.Web.Node/esbuild.config.js b/src/Dfe.PlanTech.Web.Node/esbuild.config.js index 3512e4744..a6e42b697 100644 --- a/src/Dfe.PlanTech.Web.Node/esbuild.config.js +++ b/src/Dfe.PlanTech.Web.Node/esbuild.config.js @@ -1,59 +1,102 @@ -import * as esbuild from 'esbuild'; -import { sassPlugin } from 'esbuild-sass-plugin'; -import { cpSync, readdirSync } from 'fs'; +import * as esbuild from "esbuild"; +import { sassPlugin } from "esbuild-sass-plugin"; +import { copyFileSync, cpSync, readdirSync } from "fs"; +import { parse } from "path"; -//Build JS +//Build main JS await esbuild.build({ - entryPoints: ['scripts/app.js'], + entryPoints: ["scripts/app.js"], bundle: true, minify: true, sourcemap: true, - target: ['chrome58', 'firefox57', 'safari11', 'edge16'], - outfile: 'out/js/app.js', -}) + outfile: "out/js/app.js", +}); + +//Build extra JS +const jsFilePaths = [ + "./node_modules/@govuk-prototype-kit/step-by-step/javascripts/step-by-step-navigation.js", + "./node_modules/@govuk-prototype-kit/step-by-step/javascripts/step-by-step-polyfills.js", +]; + +const jsEntryPoints = Object.fromEntries( + new Map(jsFilePaths.map((path) => [parse(path).name, path])) +); + +await esbuild.build({ + entryPoints: jsEntryPoints, + bundle: true, + minify: true, + sourcemap: true, + outdir: "out/js/", +}); -//Builds SASS await esbuild.build({ - entryPoints: ['styles/scss/application.scss'], + entryPoints: ["styles/scss/application.scss"], bundle: true, minify: true, sourcemap: true, - target: ['chrome58', 'firefox57', 'safari11', 'edge16'], - external: ['/assets/*'], - plugins: [sassPlugin({ - loader: { ".woff2": "file", ".png": "file" }, - })], - outfile: 'out/css/application.css' + target: ["chrome58", "firefox57", "safari11", "edge16"], + external: ["/assets/*"], + plugins: [ + sassPlugin({ + loader: { ".woff2": "file", ".png": "file" }, + }), + ], + outfile: "out/css/application.css", +}); + +await esbuild.build({ + entryPoints: ["styles/scss/step-by-step.scss"], + bundle: true, + minify: true, + sourcemap: true, + target: ["chrome58", "firefox57", "safari11", "edge16"], + external: ["/assets/*"], + plugins: [ + sassPlugin({ + loader: { ".woff2": "file", ".png": "file" }, + }), + ], + outfile: "out/css/step-by-step.css", }); //Copy assets //DFE const dfeDir = "./node_modules/dfe-frontend-alpha/packages/assets"; -readdirSync(dfeDir).forEach(file => { +readdirSync(dfeDir).forEach((file) => { if (file.indexOf(".png") == -1) { return; } - cpSync(dfeDir + "/" + file, "./out/assets/images/" + file, { overwrite: true }); + cpSync(dfeDir + "/" + file, "./out/assets/images/" + file, { + overwrite: true, + }); }); //GOVUK -const govukDir = "./node_modules/govuk-frontend/govuk/assets/"; +const govukDir = "./node_modules/govuk-frontend/dist/govuk/assets/"; const targetFolders = ["images", "fonts"]; const ignoreFiles = ["favicon.ico"]; for (const folder of targetFolders) { const path = govukDir + folder; - readdirSync(path).forEach(file => { - if (ignoreFiles.some(ignoreFile => ignoreFile == file)) { + readdirSync(path).forEach((file) => { + if (ignoreFiles.some((ignoreFile) => ignoreFile == file)) { return; } - cpSync(`${path}/${file}`, `./out/assets/${folder}/${file}`, { overwrite: true }); - }) + cpSync(`${path}/${file}`, `./out/assets/${folder}/${file}`, { + overwrite: true, + }); + }); } +copyFileSync( + "./node_modules/govuk-frontend/dist/govuk/govuk-frontend.min.js", + "./out/js/govuk-frontend.min.js" +); + //Copy to Dfe.PlanTech.Web const targetDir = "../Dfe.PlanTech.Web/wwwroot"; const folders = ["css", "assets", "js"]; @@ -63,4 +106,3 @@ for (const folder of folders) { cpSync(path, `${targetDir}/${folder}`, { recursive: true, overwrite: true }); } - diff --git a/src/Dfe.PlanTech.Web.Node/package-lock.json b/src/Dfe.PlanTech.Web.Node/package-lock.json index bdb68d335..3e41c0b19 100644 --- a/src/Dfe.PlanTech.Web.Node/package-lock.json +++ b/src/Dfe.PlanTech.Web.Node/package-lock.json @@ -9,11 +9,12 @@ "version": "1.0.0", "license": "ISC", "dependencies": { - "dfe-frontend-alpha": "^0.1.8", + "@govuk-prototype-kit/step-by-step": "^2.2.2", + "dfe-frontend-alpha": "^1.0.1", "esbuild": "0.18.17", "esbuild-sass-plugin": "^2.10.0", "fs": "^0.0.1-security", - "govuk-frontend": "^4.7.0", + "govuk-frontend": "^5.1.0", "sass": "^1.64.1" } }, @@ -38,43 +39,44 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", - "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", "dependencies": { - "@babel/highlight": "^7.22.5" + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.9.tgz", - "integrity": "sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.9.tgz", - "integrity": "sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.9.tgz", + "integrity": "sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.5", - "@babel/generator": "^7.22.9", - "@babel/helper-compilation-targets": "^7.22.9", - "@babel/helper-module-transforms": "^7.22.9", - "@babel/helpers": "^7.22.6", - "@babel/parser": "^7.22.7", - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.8", - "@babel/types": "^7.22.5", - "convert-source-map": "^1.7.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.9", + "@babel/parser": "^7.23.9", + "@babel/template": "^7.23.9", + "@babel/traverse": "^7.23.9", + "@babel/types": "^7.23.9", + "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", + "json5": "^2.2.3", "semver": "^6.3.1" }, "engines": { @@ -86,11 +88,11 @@ } }, "node_modules/@babel/generator": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.9.tgz", - "integrity": "sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", "dependencies": { - "@babel/types": "^7.22.5", + "@babel/types": "^7.23.6", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -111,45 +113,42 @@ } }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.5.tgz", - "integrity": "sha512-m1EP3lVOPptR+2DwD125gziZNcmoNSHGmJROKoy87loWUQyJaVXDgpmruWqDARZSmtYQ+Dl25okU8+qhVzuykw==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", + "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.9.tgz", - "integrity": "sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-validator-option": "^7.22.5", - "browserslist": "^4.21.9", + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.9.tgz", - "integrity": "sha512-Pwyi89uO4YrGKxL/eNJ8lfEH55DnRloGPOseaA8NFNL6jAUnn+KccaISiFazCj5IolPPDjGSdzQzXVzODVRqUQ==", + "version": "7.23.10", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.10.tgz", + "integrity": "sha512-2XpP2XhkXzgxecPNEEK8Vz8Asj9aRxt08oKOqtiZoqV2UGZ5T+EkyP9sXQ9nwMxBIG34a7jmasVqoMop7VdPUw==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-member-expression-to-functions": "^7.23.0", "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", + "@babel/helper-replace-supers": "^7.22.20", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", "semver": "^6.3.1" @@ -162,9 +161,9 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.9.tgz", - "integrity": "sha512-+svjVa/tFwsNSG4NEy1h85+HQ5imbT92Q5/bgtS7P0GTQlP8WuFdqsiABmQouhiFGyV66oGxZFpeYHza1rNsKw==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", + "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "regexpu-core": "^5.3.1", @@ -178,9 +177,9 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.2.tgz", - "integrity": "sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz", + "integrity": "sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==", "dependencies": { "@babel/helper-compilation-targets": "^7.22.6", "@babel/helper-plugin-utils": "^7.22.5", @@ -193,20 +192,20 @@ } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", - "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", - "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dependencies": { - "@babel/template": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" @@ -224,37 +223,37 @@ } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz", - "integrity": "sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", + "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz", - "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz", - "integrity": "sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", "@babel/helper-simple-access": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.5" + "@babel/helper-validator-identifier": "^7.22.20" }, "engines": { "node": ">=6.9.0" @@ -283,13 +282,13 @@ } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.9.tgz", - "integrity": "sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", + "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-wrap-function": "^7.22.9" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" }, "engines": { "node": ">=6.9.0" @@ -299,12 +298,12 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.9.tgz", - "integrity": "sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", + "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", "@babel/helper-optimise-call-expression": "^7.22.5" }, "engines": { @@ -348,62 +347,62 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", - "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", - "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz", - "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.9.tgz", - "integrity": "sha512-sZ+QzfauuUEfxSEjKFmi3qDSHgLsTPK/pEpoD/qonZKOtTPTLbf59oabPQ4rKekt9lFcj/hTZaOhWwFYrgjk+Q==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", + "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", "dependencies": { "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/template": "^7.22.15", + "@babel/types": "^7.22.19" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.6.tgz", - "integrity": "sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.9.tgz", + "integrity": "sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==", "dependencies": { - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.6", - "@babel/types": "^7.22.5" + "@babel/template": "^7.23.9", + "@babel/traverse": "^7.23.9", + "@babel/types": "^7.23.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", - "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", "dependencies": { - "@babel/helper-validator-identifier": "^7.22.5", - "chalk": "^2.0.0", + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" }, "engines": { @@ -411,9 +410,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.22.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.7.tgz", - "integrity": "sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz", + "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==", "bin": { "parser": "bin/babel-parser.js" }, @@ -422,9 +421,9 @@ } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz", - "integrity": "sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", + "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -436,13 +435,13 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.5.tgz", - "integrity": "sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", + "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.22.5" + "@babel/plugin-transform-optional-chaining": "^7.23.3" }, "engines": { "node": ">=6.9.0" @@ -451,27 +450,27 @@ "@babel/core": "^7.13.0" } }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0-placeholder-for-preset-env.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", - "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz", + "integrity": "sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5" + }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", - "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", "engines": { - "node": ">=4" + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" @@ -547,9 +546,9 @@ } }, "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz", - "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", + "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -561,9 +560,9 @@ } }, "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz", - "integrity": "sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", + "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -706,9 +705,9 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz", - "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", + "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -720,13 +719,13 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.22.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.7.tgz", - "integrity": "sha512-7HmE7pk/Fmke45TODvxvkxRMV9RazV+ZZzhOL9AG8G29TLrr3jkjwF7uJfxZ30EoXpO+LJkq4oA8NjO2DTnEDg==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.9.tgz", + "integrity": "sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20", "@babel/plugin-syntax-async-generators": "^7.8.4" }, "engines": { @@ -737,13 +736,13 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz", - "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", + "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", "dependencies": { - "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-module-imports": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.5" + "@babel/helper-remap-async-to-generator": "^7.22.20" }, "engines": { "node": ">=6.9.0" @@ -753,9 +752,9 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz", - "integrity": "sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", + "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -767,9 +766,9 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.5.tgz", - "integrity": "sha512-EcACl1i5fSQ6bt+YGuU/XGCeZKStLmyVGytWkpyhCLeQVA0eu6Wtiw92V+I1T/hnezUv7j74dA/Ro69gWcU+hg==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz", + "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -781,11 +780,11 @@ } }, "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz", - "integrity": "sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz", + "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { @@ -796,11 +795,11 @@ } }, "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.5.tgz", - "integrity": "sha512-SPToJ5eYZLxlnp1UzdARpOGeC2GbHvr9d/UV0EukuVx8atktg194oe+C5BqQ8jRTkgLRVOPYeXRSBg1IlMoVRA==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz", + "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-class-static-block": "^7.14.5" }, @@ -812,17 +811,16 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.6.tgz", - "integrity": "sha512-58EgM6nuPNG6Py4Z3zSuu0xWu2VfodiMi72Jt5Kj2FECmaYk1RrTXA45z6KBFsu9tRgwQDwIiY4FXTt+YsSFAQ==", + "version": "7.23.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz", + "integrity": "sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", "@babel/helper-split-export-declaration": "^7.22.6", "globals": "^11.1.0" }, @@ -834,12 +832,12 @@ } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz", - "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", + "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", - "@babel/template": "^7.22.5" + "@babel/template": "^7.22.15" }, "engines": { "node": ">=6.9.0" @@ -849,9 +847,9 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.5.tgz", - "integrity": "sha512-GfqcFuGW8vnEqTUBM7UtPd5A4q797LTvvwKxXTgRsFjoqaJiEg9deBG6kWeQYkVEL569NpnmpC0Pkr/8BLKGnQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", + "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -863,11 +861,11 @@ } }, "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz", - "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", + "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-create-regexp-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { @@ -878,9 +876,9 @@ } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz", - "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", + "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -892,9 +890,9 @@ } }, "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.5.tgz", - "integrity": "sha512-0MC3ppTB1AMxd8fXjSrbPa7LT9hrImt+/fcj+Pg5YMD7UQyWp/02+JWpdnCymmsXwIx5Z+sYn1bwCn4ZJNvhqQ==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz", + "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3" @@ -907,11 +905,11 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz", - "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", + "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5", + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { @@ -922,9 +920,9 @@ } }, "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.5.tgz", - "integrity": "sha512-X4hhm7FRnPgd4nDA4b/5V280xCx6oL7Oob5+9qVS5C13Zq4bh1qq7LU0GgRU6b5dBWBvhGaXYVB4AcN6+ol6vg==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz", + "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" @@ -937,11 +935,12 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.5.tgz", - "integrity": "sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz", + "integrity": "sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -951,12 +950,12 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz", - "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", + "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", "dependencies": { - "@babel/helper-compilation-targets": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-function-name": "^7.23.0", "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { @@ -967,9 +966,9 @@ } }, "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.5.tgz", - "integrity": "sha512-DuCRB7fu8MyTLbEQd1ew3R85nx/88yMoqo2uPSjevMj3yoN7CDM8jkgrY0wmVxfJZyJ/B9fE1iq7EQppWQmR5A==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz", + "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-json-strings": "^7.8.3" @@ -982,9 +981,9 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz", - "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", + "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -996,9 +995,9 @@ } }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.5.tgz", - "integrity": "sha512-MQQOUW1KL8X0cDWfbwYP+TbVbZm16QmQXJQ+vndPtH/BoO0lOKpVoEDMI7+PskYxH+IiE0tS8xZye0qr1lGzSA==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz", + "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" @@ -1011,9 +1010,9 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz", - "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", + "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1025,11 +1024,11 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.22.5.tgz", - "integrity": "sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", + "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", "dependencies": { - "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.3", "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { @@ -1040,11 +1039,11 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz", - "integrity": "sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", + "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", "dependencies": { - "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.3", "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-simple-access": "^7.22.5" }, @@ -1056,14 +1055,14 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.5.tgz", - "integrity": "sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.9.tgz", + "integrity": "sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==", "dependencies": { "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.3", "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.5" + "@babel/helper-validator-identifier": "^7.22.20" }, "engines": { "node": ">=6.9.0" @@ -1073,11 +1072,11 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz", - "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", + "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", "dependencies": { - "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.3", "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { @@ -1103,9 +1102,9 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz", - "integrity": "sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", + "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1117,9 +1116,9 @@ } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.5.tgz", - "integrity": "sha512-6CF8g6z1dNYZ/VXok5uYkkBBICHZPiGEl7oDnAx2Mt1hlHVHOSIKWJaXHjQJA5VB43KZnXZDIexMchY4y2PGdA==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz", + "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" @@ -1132,9 +1131,9 @@ } }, "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.5.tgz", - "integrity": "sha512-NbslED1/6M+sXiwwtcAB/nieypGw02Ejf4KtDeMkCEpP6gWFMX1wI9WKYua+4oBneCCEmulOkRpwywypVZzs/g==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz", + "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-numeric-separator": "^7.10.4" @@ -1147,15 +1146,15 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.5.tgz", - "integrity": "sha512-Kk3lyDmEslH9DnvCDA1s1kkd3YWQITiBOHngOtDL9Pt6BZjzqb6hiOlb8VfjiiQJ2unmegBqZu0rx5RxJb5vmQ==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz", + "integrity": "sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==", "dependencies": { - "@babel/compat-data": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.5", + "@babel/compat-data": "^7.23.3", + "@babel/helper-compilation-targets": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.22.5" + "@babel/plugin-transform-parameters": "^7.23.3" }, "engines": { "node": ">=6.9.0" @@ -1165,12 +1164,12 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz", - "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", + "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.5" + "@babel/helper-replace-supers": "^7.22.20" }, "engines": { "node": ">=6.9.0" @@ -1180,9 +1179,9 @@ } }, "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.5.tgz", - "integrity": "sha512-pH8orJahy+hzZje5b8e2QIlBWQvGpelS76C63Z+jhZKsmzfNaPQ+LaW6dcJ9bxTpo1mtXbgHwy765Ro3jftmUg==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz", + "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" @@ -1195,9 +1194,9 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.6.tgz", - "integrity": "sha512-Vd5HiWml0mDVtcLHIoEU5sw6HOUW/Zk0acLs/SAeuLzkGNOPc9DB4nkUajemhCmTIz3eiaKREZn2hQQqF79YTg==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz", + "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", @@ -1211,9 +1210,9 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.5.tgz", - "integrity": "sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", + "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1225,11 +1224,11 @@ } }, "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz", - "integrity": "sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz", + "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { @@ -1240,12 +1239,12 @@ } }, "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.5.tgz", - "integrity": "sha512-/9xnaTTJcVoBtSSmrVyhtSvO3kbqS2ODoh2juEU72c3aYonNF0OMGiaz2gjukyKM2wBBYJP38S4JiE0Wfb5VMQ==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz", + "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, @@ -1257,9 +1256,9 @@ } }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz", - "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", + "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1271,12 +1270,12 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.5.tgz", - "integrity": "sha512-rR7KePOE7gfEtNTh9Qw+iO3Q/e4DEsoQ+hdvM6QUDH7JRJ5qxq5AA52ZzBWbI5i9lfNuvySgOGP8ZN7LAmaiPw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", + "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", - "regenerator-transform": "^0.15.1" + "regenerator-transform": "^0.15.2" }, "engines": { "node": ">=6.9.0" @@ -1286,9 +1285,9 @@ } }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz", - "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", + "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1300,9 +1299,9 @@ } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz", - "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", + "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1314,9 +1313,9 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz", - "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", + "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" @@ -1329,9 +1328,9 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz", - "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", + "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1343,9 +1342,9 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz", - "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", + "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1357,9 +1356,9 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz", - "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", + "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1371,9 +1370,9 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.5.tgz", - "integrity": "sha512-biEmVg1IYB/raUO5wT1tgfacCef15Fbzhkx493D3urBI++6hpJ+RFG4SrWMn0NEZLfvilqKf3QDrRVZHo08FYg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", + "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1385,11 +1384,11 @@ } }, "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz", - "integrity": "sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", + "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-create-regexp-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { @@ -1400,11 +1399,11 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz", - "integrity": "sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", + "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-create-regexp-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { @@ -1415,11 +1414,11 @@ } }, "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz", - "integrity": "sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", + "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-create-regexp-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { @@ -1430,24 +1429,25 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.9.tgz", - "integrity": "sha512-wNi5H/Emkhll/bqPjsjQorSykrlfY5OWakd6AulLvMEytpKasMVUpVy8RL4qBIBs5Ac6/5i0/Rv0b/Fg6Eag/g==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.9.tgz", + "integrity": "sha512-3kBGTNBBk9DQiPoXYS0g0BYlwTQYUTifqgKTjxUwEUkduRT2QOa0FPGBJ+NROQhGyYO5BuTJwGvBnqKDykac6A==", "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-compilation-targets": "^7.22.9", + "@babel/compat-data": "^7.23.5", + "@babel/helper-compilation-targets": "^7.23.6", "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.5", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.5", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.5", + "@babel/helper-validator-option": "^7.23.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.7", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.22.5", - "@babel/plugin-syntax-import-attributes": "^7.22.5", + "@babel/plugin-syntax-import-assertions": "^7.23.3", + "@babel/plugin-syntax-import-attributes": "^7.23.3", "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", @@ -1459,59 +1459,58 @@ "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.22.5", - "@babel/plugin-transform-async-generator-functions": "^7.22.7", - "@babel/plugin-transform-async-to-generator": "^7.22.5", - "@babel/plugin-transform-block-scoped-functions": "^7.22.5", - "@babel/plugin-transform-block-scoping": "^7.22.5", - "@babel/plugin-transform-class-properties": "^7.22.5", - "@babel/plugin-transform-class-static-block": "^7.22.5", - "@babel/plugin-transform-classes": "^7.22.6", - "@babel/plugin-transform-computed-properties": "^7.22.5", - "@babel/plugin-transform-destructuring": "^7.22.5", - "@babel/plugin-transform-dotall-regex": "^7.22.5", - "@babel/plugin-transform-duplicate-keys": "^7.22.5", - "@babel/plugin-transform-dynamic-import": "^7.22.5", - "@babel/plugin-transform-exponentiation-operator": "^7.22.5", - "@babel/plugin-transform-export-namespace-from": "^7.22.5", - "@babel/plugin-transform-for-of": "^7.22.5", - "@babel/plugin-transform-function-name": "^7.22.5", - "@babel/plugin-transform-json-strings": "^7.22.5", - "@babel/plugin-transform-literals": "^7.22.5", - "@babel/plugin-transform-logical-assignment-operators": "^7.22.5", - "@babel/plugin-transform-member-expression-literals": "^7.22.5", - "@babel/plugin-transform-modules-amd": "^7.22.5", - "@babel/plugin-transform-modules-commonjs": "^7.22.5", - "@babel/plugin-transform-modules-systemjs": "^7.22.5", - "@babel/plugin-transform-modules-umd": "^7.22.5", + "@babel/plugin-transform-arrow-functions": "^7.23.3", + "@babel/plugin-transform-async-generator-functions": "^7.23.9", + "@babel/plugin-transform-async-to-generator": "^7.23.3", + "@babel/plugin-transform-block-scoped-functions": "^7.23.3", + "@babel/plugin-transform-block-scoping": "^7.23.4", + "@babel/plugin-transform-class-properties": "^7.23.3", + "@babel/plugin-transform-class-static-block": "^7.23.4", + "@babel/plugin-transform-classes": "^7.23.8", + "@babel/plugin-transform-computed-properties": "^7.23.3", + "@babel/plugin-transform-destructuring": "^7.23.3", + "@babel/plugin-transform-dotall-regex": "^7.23.3", + "@babel/plugin-transform-duplicate-keys": "^7.23.3", + "@babel/plugin-transform-dynamic-import": "^7.23.4", + "@babel/plugin-transform-exponentiation-operator": "^7.23.3", + "@babel/plugin-transform-export-namespace-from": "^7.23.4", + "@babel/plugin-transform-for-of": "^7.23.6", + "@babel/plugin-transform-function-name": "^7.23.3", + "@babel/plugin-transform-json-strings": "^7.23.4", + "@babel/plugin-transform-literals": "^7.23.3", + "@babel/plugin-transform-logical-assignment-operators": "^7.23.4", + "@babel/plugin-transform-member-expression-literals": "^7.23.3", + "@babel/plugin-transform-modules-amd": "^7.23.3", + "@babel/plugin-transform-modules-commonjs": "^7.23.3", + "@babel/plugin-transform-modules-systemjs": "^7.23.9", + "@babel/plugin-transform-modules-umd": "^7.23.3", "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", - "@babel/plugin-transform-new-target": "^7.22.5", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.5", - "@babel/plugin-transform-numeric-separator": "^7.22.5", - "@babel/plugin-transform-object-rest-spread": "^7.22.5", - "@babel/plugin-transform-object-super": "^7.22.5", - "@babel/plugin-transform-optional-catch-binding": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.22.6", - "@babel/plugin-transform-parameters": "^7.22.5", - "@babel/plugin-transform-private-methods": "^7.22.5", - "@babel/plugin-transform-private-property-in-object": "^7.22.5", - "@babel/plugin-transform-property-literals": "^7.22.5", - "@babel/plugin-transform-regenerator": "^7.22.5", - "@babel/plugin-transform-reserved-words": "^7.22.5", - "@babel/plugin-transform-shorthand-properties": "^7.22.5", - "@babel/plugin-transform-spread": "^7.22.5", - "@babel/plugin-transform-sticky-regex": "^7.22.5", - "@babel/plugin-transform-template-literals": "^7.22.5", - "@babel/plugin-transform-typeof-symbol": "^7.22.5", - "@babel/plugin-transform-unicode-escapes": "^7.22.5", - "@babel/plugin-transform-unicode-property-regex": "^7.22.5", - "@babel/plugin-transform-unicode-regex": "^7.22.5", - "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.22.5", - "babel-plugin-polyfill-corejs2": "^0.4.4", - "babel-plugin-polyfill-corejs3": "^0.8.2", - "babel-plugin-polyfill-regenerator": "^0.5.1", + "@babel/plugin-transform-new-target": "^7.23.3", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4", + "@babel/plugin-transform-numeric-separator": "^7.23.4", + "@babel/plugin-transform-object-rest-spread": "^7.23.4", + "@babel/plugin-transform-object-super": "^7.23.3", + "@babel/plugin-transform-optional-catch-binding": "^7.23.4", + "@babel/plugin-transform-optional-chaining": "^7.23.4", + "@babel/plugin-transform-parameters": "^7.23.3", + "@babel/plugin-transform-private-methods": "^7.23.3", + "@babel/plugin-transform-private-property-in-object": "^7.23.4", + "@babel/plugin-transform-property-literals": "^7.23.3", + "@babel/plugin-transform-regenerator": "^7.23.3", + "@babel/plugin-transform-reserved-words": "^7.23.3", + "@babel/plugin-transform-shorthand-properties": "^7.23.3", + "@babel/plugin-transform-spread": "^7.23.3", + "@babel/plugin-transform-sticky-regex": "^7.23.3", + "@babel/plugin-transform-template-literals": "^7.23.3", + "@babel/plugin-transform-typeof-symbol": "^7.23.3", + "@babel/plugin-transform-unicode-escapes": "^7.23.3", + "@babel/plugin-transform-unicode-property-regex": "^7.23.3", + "@babel/plugin-transform-unicode-regex": "^7.23.3", + "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.8", + "babel-plugin-polyfill-corejs3": "^0.9.0", + "babel-plugin-polyfill-regenerator": "^0.5.5", "core-js-compat": "^3.31.0", "semver": "^6.3.1" }, @@ -1523,13 +1522,11 @@ } }, "node_modules/@babel/preset-modules": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6.tgz", - "integrity": "sha512-ID2yj6K/4lKfhuU3+EX4UvNbIt7eACFbHmNUjzA+ep+B5971CknnA/9DEWKbRokfbbtblxxxXFJJrH47UEAMVg==", + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", "@babel/types": "^7.4.4", "esutils": "^2.0.2" }, @@ -1543,43 +1540,43 @@ "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==" }, "node_modules/@babel/runtime": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.6.tgz", - "integrity": "sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.9.tgz", + "integrity": "sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==", "dependencies": { - "regenerator-runtime": "^0.13.11" + "regenerator-runtime": "^0.14.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/template": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz", - "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.23.9.tgz", + "integrity": "sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==", "dependencies": { - "@babel/code-frame": "^7.22.5", - "@babel/parser": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.23.9", + "@babel/types": "^7.23.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.22.8", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.8.tgz", - "integrity": "sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw==", - "dependencies": { - "@babel/code-frame": "^7.22.5", - "@babel/generator": "^7.22.7", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.9.tgz", + "integrity": "sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==", + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.22.7", - "@babel/types": "^7.22.5", - "debug": "^4.1.0", + "@babel/parser": "^7.23.9", + "@babel/types": "^7.23.9", + "debug": "^4.3.1", "globals": "^11.1.0" }, "engines": { @@ -1587,12 +1584,12 @@ } }, "node_modules/@babel/types": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.5.tgz", - "integrity": "sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.9.tgz", + "integrity": "sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==", "dependencies": { - "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.5", + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" }, "engines": { @@ -1969,9 +1966,9 @@ } }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dependencies": { "type-fest": "^0.20.2" }, @@ -1993,6 +1990,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@govuk-prototype-kit/step-by-step": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@govuk-prototype-kit/step-by-step/-/step-by-step-2.2.2.tgz", + "integrity": "sha512-roFCAexAFP+ip2dIUi7o4QKDLak6nKcTFnMoh9jBEpKjpO6rjoU+xkgY3w9nqTy9rRGBtvIb+LaeoEZ78sd2KA==" + }, "node_modules/@hapi/hoek": { "version": "9.3.0", "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", @@ -2187,17 +2189,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@jest/core/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@jest/core/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -2229,17 +2220,6 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, - "node_modules/@jest/core/node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@jest/core/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -2248,26 +2228,6 @@ "node": ">=8" } }, - "node_modules/@jest/core/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/@jest/core/node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, "node_modules/@jest/core/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -2279,17 +2239,6 @@ "node": ">=8" } }, - "node_modules/@jest/core/node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, "node_modules/@jest/environment": { "version": "26.6.2", "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-26.6.2.tgz", @@ -2515,17 +2464,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@jest/transform/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@jest/transform/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -2557,16 +2495,10 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, - "node_modules/@jest/transform/node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } + "node_modules/@jest/transform/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" }, "node_modules/@jest/transform/node_modules/has-flag": { "version": "4.0.0", @@ -2576,26 +2508,6 @@ "node": ">=8" } }, - "node_modules/@jest/transform/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/@jest/transform/node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, "node_modules/@jest/transform/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -2607,17 +2519,6 @@ "node": ">=8" } }, - "node_modules/@jest/transform/node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, "node_modules/@jest/types": { "version": "26.6.2", "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", @@ -2711,9 +2612,9 @@ } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "engines": { "node": ">=6.0.0" } @@ -2741,26 +2642,12 @@ "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", - "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", - "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - } - }, - "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" - }, - "node_modules/@mirzazeyrek/node-resemble-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@mirzazeyrek/node-resemble-js/-/node-resemble-js-1.2.1.tgz", - "integrity": "sha512-+z1c7HpC5ysdSVVyUVz67hctVLl337VlRJP/MBwpvXHkKJdlnSUVrBhlRzxgal7xpm1uDE2JeUhWbQh6wPRC4w==", + "version": "0.3.22", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz", + "integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==", "dependencies": { - "jpeg-js": "^0.4.2", - "pngjs": "^6.0.0" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, "node_modules/@nodelib/fs.scandir": { @@ -2795,77 +2682,10 @@ "node": ">= 8" } }, - "node_modules/@puppeteer/browsers": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-0.5.0.tgz", - "integrity": "sha512-Uw6oB7VvmPRLE4iKsjuOh8zgDabhNX67dzo8U/BB0f9527qx+4eeUs+korU98OhG5C4ubg7ufBgVi63XYwS6TQ==", - "dependencies": { - "debug": "4.3.4", - "extract-zip": "2.0.1", - "https-proxy-agent": "5.0.1", - "progress": "2.0.3", - "proxy-from-env": "1.1.0", - "tar-fs": "2.1.1", - "unbzip2-stream": "1.4.3", - "yargs": "17.7.1" - }, - "bin": { - "browsers": "lib/cjs/main-cli.js" - }, - "engines": { - "node": ">=14.1.0" - }, - "peerDependencies": { - "typescript": ">= 4.7.4" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@puppeteer/browsers/node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@puppeteer/browsers/node_modules/yargs": { - "version": "17.7.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", - "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@puppeteer/browsers/node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "engines": { - "node": ">=12" - } - }, "node_modules/@sideway/address": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", - "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", + "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==", "dependencies": { "@hapi/hoek": "^9.0.0" } @@ -2932,9 +2752,9 @@ } }, "node_modules/@types/babel__core": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.1.tgz", - "integrity": "sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", @@ -2944,114 +2764,117 @@ } }, "node_modules/@types/babel__generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", "dependencies": { "@babel/types": "^7.0.0" } }, "node_modules/@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" } }, "node_modules/@types/babel__traverse": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.1.tgz", - "integrity": "sha512-MitHFXnhtgwsGZWtT68URpOvLN4EREih1u3QtQiN4VdAxWKRVvGCSvw/Qth0M0Qq3pJpnGOu5JaM/ydK7OGbqg==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz", + "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==", "dependencies": { "@babel/types": "^7.20.7" } }, "node_modules/@types/eslint": { - "version": "8.44.1", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.1.tgz", - "integrity": "sha512-XpNDc4Z5Tb4x+SW1MriMVeIsMoONHCkWFMkR/aPJbzEsxqHy+4Glu/BqTdPrApfDeMaXbtNh6bseNgl5KaWrSg==", + "version": "8.56.2", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.2.tgz", + "integrity": "sha512-uQDwm1wFHmbBbCZCqAlq6Do9LYwByNZHWzXppSnay9SuwJ+VRbjkbLABer54kcPnMSlG6Fdiy2yaFXm/z9Z5gw==", "dependencies": { "@types/estree": "*", "@types/json-schema": "*" } }, "node_modules/@types/eslint-scope": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", - "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", "dependencies": { "@types/eslint": "*", "@types/estree": "*" } }, "node_modules/@types/estree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", - "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==" + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" }, "node_modules/@types/graceful-fs": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", - "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==", + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", "dependencies": { "@types/node": "*" } }, "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==" + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==" }, "node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", "dependencies": { "@types/istanbul-lib-coverage": "*" } }, "node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", "dependencies": { "@types/istanbul-lib-report": "*" } }, "node_modules/@types/json-schema": { - "version": "7.0.12", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", - "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==" + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" }, "node_modules/@types/mdast": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.12.tgz", - "integrity": "sha512-DT+iNIRNX884cx0/Q1ja7NyUPpZuv0KPyL5rGNxm1WC1OtHstl7n4Jb7nk+xacNShQMbczJjt8uFzznpp6kYBg==", + "version": "3.0.15", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", + "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==", "dependencies": { "@types/unist": "^2" } }, "node_modules/@types/minimist": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", - "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==" + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==" }, "node_modules/@types/node": { - "version": "20.4.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.5.tgz", - "integrity": "sha512-rt40Nk13II9JwQBdeYqmbn2Q6IVTA5uPhvSO+JVqdXw/6/4glI6oR9ezty/A9Hg5u7JH4OmYmuQ+XvjKm0Datg==" + "version": "20.11.19", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.19.tgz", + "integrity": "sha512-7xMnVEcZFu0DikYjWOlRq7NTPETrm7teqUT2WkQjrTIkEgUyyGdWsj/Zg8bEJt5TNklzbPD1X3fqfsHw3SpapQ==", + "dependencies": { + "undici-types": "~5.26.4" + } }, "node_modules/@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==" + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==" }, "node_modules/@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" }, "node_modules/@types/prettier": { "version": "2.7.3", @@ -3059,36 +2882,27 @@ "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==" }, "node_modules/@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==" }, "node_modules/@types/unist": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.7.tgz", - "integrity": "sha512-cputDpIbFgLUaGQn6Vqg3/YsJwxUwHLO13v3i5ouxT4lat0khip9AEWxtERujXV9wxIB1EyF97BSJFt6vpdI8g==" + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", + "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==" }, "node_modules/@types/yargs": { - "version": "15.0.15", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.15.tgz", - "integrity": "sha512-IziEYMU9XoVj8hWg7k+UJrXALkGFjWJhn5QFEv9q4p+v40oZhSuC135M38st8XPjICL7Ey4TV64ferBGUoJhBg==", + "version": "15.0.19", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.19.tgz", + "integrity": "sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA==", "dependencies": { "@types/yargs-parser": "*" } }, "node_modules/@types/yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" - }, - "node_modules/@types/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", - "optional": true, - "dependencies": { - "@types/node": "*" - } + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==" }, "node_modules/@webassemblyjs/ast": { "version": "1.11.6", @@ -3338,7 +3152,8 @@ "node_modules/abab": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", - "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==" + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "deprecated": "Use your platform's native atob() and btoa() methods instead" }, "node_modules/accepts": { "version": "1.3.8", @@ -3399,18 +3214,6 @@ "node": ">= 6.0.0" } }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -3525,34 +3328,15 @@ } }, "node_modules/anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "node_modules/anymatch/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/append-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", - "integrity": "sha512-WLbYiXzD3y/ATLZFufV/rZvWdZOs+Z/+5v1rBZ463Jn398pa6kcde27cvozYnBoxXblGZTFfoPpsaEw0orU5BA==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dependencies": { - "buffer-equal": "^1.0.0" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" }, "engines": { - "node": ">=0.10.0" + "node": ">= 8" } }, "node_modules/aproba": { @@ -3560,11 +3344,6 @@ "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" }, - "node_modules/archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==" - }, "node_modules/arg": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", @@ -3579,19 +3358,12 @@ } }, "node_modules/arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-filter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", - "integrity": "sha512-A2BETWCqhsecSvCkWAeVBFLH6sXEUGASuzkpjL3GR1SlL/PWL6M3J8EAAld2Uubmh39tvkJTqC9LeLHCUKmFXA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz", + "integrity": "sha512-OQwDZUqYaQwyyhDJHThmzId8daf4/RFNLaeh3AevmSeZ5Y7ug4Ga/yKc6l6kTZOBW781rCj103ZuTh8GAsB3+Q==", "dependencies": { - "make-iterator": "^1.0.0" + "arr-flatten": "^1.0.1", + "array-slice": "^0.2.3" }, "engines": { "node": ">=0.10.0" @@ -3605,17 +3377,6 @@ "node": ">=0.10.0" } }, - "node_modules/arr-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", - "integrity": "sha512-tVqVTHt+Q5Xb09qRkbu+DidW1yYzz5izWS2Xm2yFm7qJnmUfz4HPzNxbHkdRJbz2lrqI7S+z17xNYdFcBBO8Hw==", - "dependencies": { - "make-iterator": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/arr-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-2.1.0.tgz", @@ -3632,67 +3393,10 @@ "node": ">=0.10.0" } }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" - }, - "node_modules/array-initial": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", - "integrity": "sha512-BC4Yl89vneCYfpLrs5JU2aAu9/a+xWbeKhvISg9PT7eWFB9UlRvI+rKEtk6mgxWr3dSkk9gQ8hCrdqt06NXPdw==", - "dependencies": { - "array-slice": "^1.0.0", - "is-number": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-initial/node_modules/is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-last": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", - "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", - "dependencies": { - "is-number": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-last/node_modules/is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/array-slice": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", - "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-sort": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", - "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", - "dependencies": { - "default-compare": "^1.0.0", - "get-value": "^2.0.6", - "kind-of": "^5.0.2" - }, + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", + "integrity": "sha512-rlVfZW/1Ph2SNySXwR9QYkChp8EkOEiTMO5Vwx60usw04i4nWemkm9RXmQqgkQFaLHsqLuADvjp6IfgL9l2M8Q==", "engines": { "node": ">=0.10.0" } @@ -3743,25 +3447,25 @@ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" }, "node_modules/assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.1.tgz", + "integrity": "sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==", "dependencies": { - "object-assign": "^4.1.1", - "util": "0.10.3" + "object.assign": "^4.1.4", + "util": "^0.10.4" } }, "node_modules/assert/node_modules/inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA==" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" }, "node_modules/assert/node_modules/util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha512-5KiHfsmkqacuKjkRkdV7SsfDJ2EGiPsK92s2MhNSY0craxjTdKTtqKsJaCWp4LW33ZZ0OPUv1WO/TFvNQRiQxQ==", + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", "dependencies": { - "inherits": "2.0.1" + "inherits": "2.0.3" } }, "node_modules/assign-symbols": { @@ -3785,20 +3489,6 @@ "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==" }, - "node_modules/async-done": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz", - "integrity": "sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.2", - "process-nextick-args": "^2.0.0", - "stream-exhaust": "^1.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/async-each": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.6.tgz", @@ -3808,18 +3498,8 @@ "type": "individual", "url": "https://paulmillr.com/funding/" } - ] - }, - "node_modules/async-settle": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", - "integrity": "sha512-VPXfB4Vk49z1LHHodrEQ6Xf7W4gg1w0dAPROHngx7qgDjqmIQ+fXmwgGXTW/ITLai0YLSvWepJOP9EVpMnEAcw==", - "dependencies": { - "async-done": "^1.2.2" - }, - "engines": { - "node": ">= 0.10" - } + ], + "optional": true }, "node_modules/asynckit": { "version": "0.4.0", @@ -4019,12 +3699,12 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz", - "integrity": "sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg==", + "version": "0.4.8", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.8.tgz", + "integrity": "sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg==", "dependencies": { "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.4.2", + "@babel/helper-define-polyfill-provider": "^0.5.0", "semver": "^6.3.1" }, "peerDependencies": { @@ -4032,23 +3712,23 @@ } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.3.tgz", - "integrity": "sha512-z41XaniZL26WLrvjy7soabMXrfPWARN25PZoriDEiLMxAp50AUW3t35BGQUMg5xK3UrpVTtagIDklxYa+MhiNA==", + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.9.0.tgz", + "integrity": "sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.2", - "core-js-compat": "^3.31.0" + "@babel/helper-define-polyfill-provider": "^0.5.0", + "core-js-compat": "^3.34.0" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz", - "integrity": "sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA==", + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz", + "integrity": "sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.2" + "@babel/helper-define-polyfill-provider": "^0.5.0" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -4091,117 +3771,6 @@ "@babel/core": "^7.0.0" } }, - "node_modules/bach": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", - "integrity": "sha512-bZOOfCb3gXBXbTFXq3OZtGR88LwGeJvzu6szttaIzymOTS4ZttBNOWSv7aLZja2EMycKtRYV0Oa8SNKH/zkxvg==", - "dependencies": { - "arr-filter": "^1.1.1", - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "array-each": "^1.0.0", - "array-initial": "^1.0.0", - "array-last": "^1.1.1", - "async-done": "^1.2.2", - "async-settle": "^1.0.0", - "now-and-later": "^2.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/backstopjs": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/backstopjs/-/backstopjs-6.2.2.tgz", - "integrity": "sha512-Uy+y7FR+4jjhg+lxO2Sx9ag7D08HII9p5bfTpLD6/t2wkSk38pTTFbb7eeRvhuUNoPAgEk4o1urYrtPq4G9jyg==", - "dependencies": { - "@mirzazeyrek/node-resemble-js": "^1.2.1", - "chalk": "^4.1.2", - "diverged": "^0.1.3", - "fs-extra": "^10.1.0", - "jump.js": "^1.0.2", - "junit-report-builder": "^3.0.0", - "lodash": "^4.17.21", - "minimist": "^1.2.6", - "object-hash": "3.0.0", - "opn": "^5.5.0", - "os": "^0.1.2", - "p-map": "^4.0.0", - "path": "^0.12.7", - "playwright": "^1.32.1", - "portfinder": "^1.0.32", - "puppeteer": "^19.7.0", - "super-simple-web-server": "^1.1.3", - "temp": "^0.9.4" - }, - "bin": { - "backstop": "cli/index.js" - } - }, - "node_modules/backstopjs/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/backstopjs/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/backstopjs/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/backstopjs/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/backstopjs/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/backstopjs/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/bail": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", @@ -4293,29 +3862,6 @@ "file-uri-to-path": "1.0.0" } }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/bl/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", @@ -4337,147 +3883,24 @@ "safe-json-parse": "~1.0.1" } }, - "node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/body-parser/node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "node_modules/body-parser/node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body/node_modules/bytes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz", - "integrity": "sha512-/x68VkHLeTl3/Ll8IvxdwzhrT+IyKc52e/oyHhA2RwqPqswSnjVbSddfPRwAsJtbilMAPSRWwAlpxdYsSWOTKQ==" - }, - "node_modules/body/node_modules/raw-body": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.1.7.tgz", - "integrity": "sha512-WmJJU2e9Y6M5UzTOkHaM7xJGAPQD8PNzx3bAd2+uhZAim6wDk6dAZxPVYLF67XhbR4hmKGh33Lpmh4XWrCH5Mg==", - "dependencies": { - "bytes": "1", - "string_decoder": "0.10" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/body/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, "node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "fill-range": "^7.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/brorand": { @@ -4534,32 +3957,22 @@ } }, "node_modules/browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.2.tgz", + "integrity": "sha512-1rudGyeYY42Dk6texmv7c4VcQ0EsvVbLwZkA+AQB7SxvXxmcD93jcHie8bzecJ+ChDlmAm2Qyu0+Ccg5uhZXCg==", "dependencies": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", + "bn.js": "^5.2.1", + "browserify-rsa": "^4.1.0", "create-hash": "^1.2.0", "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", + "elliptic": "^6.5.4", "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "node_modules/browserify-sign/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "parse-asn1": "^5.1.6", + "readable-stream": "^3.6.2", + "safe-buffer": "^5.2.1" }, "engines": { - "node": ">= 6" + "node": ">= 4" } }, "node_modules/browserify-zlib": { @@ -4571,9 +3984,9 @@ } }, "node_modules/browserslist": { - "version": "4.21.9", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz", - "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", "funding": [ { "type": "opencollective", @@ -4589,10 +4002,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001503", - "electron-to-chromium": "^1.4.431", - "node-releases": "^2.0.12", - "update-browserslist-db": "^1.0.11" + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" }, "bin": { "browserslist": "cli.js" @@ -4610,26 +4023,13 @@ } }, "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" } }, "node_modules/buffer-crc32": { @@ -4640,17 +4040,6 @@ "node": "*" } }, - "node_modules/buffer-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.1.tgz", - "integrity": "sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg==", - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -4667,12 +4056,9 @@ "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==" }, "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "engines": { - "node": ">= 0.8" - } + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz", + "integrity": "sha512-/x68VkHLeTl3/Ll8IvxdwzhrT+IyKc52e/oyHhA2RwqPqswSnjVbSddfPRwAsJtbilMAPSRWwAlpxdYsSWOTKQ==" }, "node_modules/cacache": { "version": "12.0.4", @@ -4732,12 +4118,18 @@ } }, "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -4776,9 +4168,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001517", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001517.tgz", - "integrity": "sha512-Vdhm5S11DaFVLlyiKu4hiUTkpZu+y1KA/rZZqVQfOD5YdDT/eQKlkt7NaE0WGOFgX32diqt9MiP9CAiFeRklaA==", + "version": "1.0.30001588", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001588.tgz", + "integrity": "sha512-+hVY9jE44uKLkH0SrUTqxjxqNTOWHsbnQDIKjwkZ3lNTzUUVdBLBGXtj/q5Mp5u98r3droaZAewQuEDzjQdZlQ==", "funding": [ { "type": "opencollective", @@ -4887,59 +4279,6 @@ "fsevents": "~2.3.2" } }, - "node_modules/chokidar/node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/chokidar/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/chokidar/node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/chokidar/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/chokidar/node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, "node_modules/chownr": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", @@ -4953,17 +4292,6 @@ "node": ">=6.0" } }, - "node_modules/chromium-bidi": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.4.7.tgz", - "integrity": "sha512-6+mJuFXwTMU6I3vYLs6IL8A1DyQTPjCfIL971X0aMPVGRbGnNfl6i6Cl0NMbxi2bRYLGESt9T2ZIMRM5PAEcIQ==", - "dependencies": { - "mitt": "3.0.0" - }, - "peerDependencies": { - "devtools-protocol": "*" - } - }, "node_modules/ci-info": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", @@ -5016,66 +4344,16 @@ "node": ">=0.10.0" } }, - "node_modules/class-utils/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/class-utils/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/class-utils/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, "node_modules/clean-css": { @@ -5089,14 +4367,6 @@ "node": ">= 4.0" } }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "engines": { - "node": ">=6" - } - }, "node_modules/cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -5149,6 +4419,33 @@ "readable-stream": "^2.3.5" } }, + "node_modules/cloneable-readable/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/cloneable-readable/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/cloneable-readable/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -5158,32 +4455,11 @@ "node": ">= 0.12.0" } }, - "node_modules/code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/collect-v8-coverage": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==" }, - "node_modules/collection-map": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", - "integrity": "sha512-5D2XXSpkOnleOI21TG7p3T0bGAsZ/XknZpKBmGYyluO8pw4zA3K8ZlrBIbC4FXg3m6z/RNFiUFfT2sQK01+UHA==", - "dependencies": { - "arr-map": "^2.0.2", - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/collection-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", @@ -5247,9 +4523,12 @@ "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==" }, "node_modules/component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", + "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/concat-map": { "version": "0.0.1", @@ -5270,6 +4549,33 @@ "typedarray": "^0.0.6" } }, + "node_modules/concat-stream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/concat-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/concat-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/concurrently": { "version": "6.5.1", "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-6.5.1.tgz", @@ -5414,47 +4720,15 @@ "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==" }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/continuable-cache": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/continuable-cache/-/continuable-cache-0.3.1.tgz", "integrity": "sha512-TF30kpKhTH8AGCG3dut0rdd/19B7Z+qCnrMoBLpyQu/2drZdNrrpcjPEoJeSVsQM+8KmWG5O56oPDjSSUsuTyA==" }, "node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" - }, - "node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" }, "node_modules/copy-concurrently": { "version": "1.0.5", @@ -5488,21 +4762,12 @@ "node": ">=0.10.0" } }, - "node_modules/copy-props": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.5.tgz", - "integrity": "sha512-XBlx8HSqrT0ObQwmSzM7WE5k8FxTV75h1DX1Z3n6NhQ/UYYAvInWYmG06vFt7hQZArE2fuO62aihiWIVQwh1sw==", - "dependencies": { - "each-props": "^1.3.2", - "is-plain-object": "^5.0.0" - } - }, "node_modules/core-js-compat": { - "version": "3.32.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.32.0.tgz", - "integrity": "sha512-7a9a3D1k4UCVKnLhrgALyFcP7YCsLOQIxPd0dKjf/6GuPcgyiGP70ewWdCGrSK7evyhymi0qO4EqCmSJofDeYw==", + "version": "3.36.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.36.0.tgz", + "integrity": "sha512-iV9Pd/PsgjNWBXeq8XRtWVSgz2tKAfhfvBs7qxYty+RlRd+OCksaWmOnc4JKrTc1cToXL1N0s3l/vwlxPtdElw==", "dependencies": { - "browserslist": "^4.21.9" + "browserslist": "^4.22.3" }, "funding": { "type": "opencollective", @@ -5568,52 +4833,6 @@ "sha.js": "^2.4.8" } }, - "node_modules/cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "dependencies": { - "node-fetch": "2.6.7" - } - }, - "node_modules/cross-fetch/node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/cross-fetch/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "node_modules/cross-fetch/node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "node_modules/cross-fetch/node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -5685,15 +4904,6 @@ "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.2.tgz", "integrity": "sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA==" }, - "node_modules/d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, "node_modules/data-urls": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", @@ -5722,14 +4932,6 @@ "url": "https://opencollective.com/date-fns" } }, - "node_modules/date-format": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.3.tgz", - "integrity": "sha512-7P3FyqDcfeznLZp2b+OMitV9Sz2lUnsT87WaTat9nVwqsBkTzPG3lPLNwW3en6F4pHUiWzr6vb8CLhjdK9bcxQ==", - "engines": { - "node": ">=4.0" - } - }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -5803,30 +5005,28 @@ "node": ">=0.10.0" } }, - "node_modules/default-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", - "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dependencies": { - "kind-of": "^5.0.2" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-resolution": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", - "integrity": "sha512-2xaP6GiwVwOEbXCGoJ4ufgC76m8cj805jrghScewJC2ZDsb9U0b4BIrba+xt/Uytyd0HvQ6+WymSRTfnYj59GQ==", - "engines": { - "node": ">= 0.10" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/define-properties": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", - "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dependencies": { + "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" }, @@ -5879,14 +5079,6 @@ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", "integrity": "sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg==" }, - "node_modules/detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/detect-newline": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", @@ -5895,24 +5087,17 @@ "node": ">=8" } }, - "node_modules/devtools-protocol": { - "version": "0.0.1107588", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1107588.tgz", - "integrity": "sha512-yIR+pG9x65Xko7bErCUSQaDLrO/P1p3JUzEk7JCU4DowPcGHkTGUGQapcfcLc4qj0UaALwZ+cr0riFgiqpixcg==" - }, "node_modules/dfe-frontend-alpha": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/dfe-frontend-alpha/-/dfe-frontend-alpha-0.1.8.tgz", - "integrity": "sha512-h7lT88a8Td23Tf85z6I0F6xDRS3meqXVWHIJU4V8OpzFyyOzhydVH/76mt4Y0KcPWZNhnzyfUuiwLyokKeglcg==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dfe-frontend-alpha/-/dfe-frontend-alpha-1.0.1.tgz", + "integrity": "sha512-75Qzr1KAM/MAaj0MFzAyShXaRhCq13/wpbP3yXgOZ1yEiU1PPsaliWVyf1qPJ2BfLe3OJpA4fgLG4AIMq9N9kg==", "dependencies": { "@babel/core": "^7.12.10", "@babel/preset-env": "^7.12.11", "babel-loader": "^8.2.2", - "backstopjs": "^6.1.4", "concurrently": "^6.4.0", "eslint": "^7.32.0", "govuk-frontend": "^4.5.0", - "gulp": "^4.0.2", "gulp-clean": "^0.4.0", "gulp-clean-css": "^4.3.0", "gulp-connect": "^5.7.0", @@ -5936,15 +5121,15 @@ "webpack-stream": "^5.2.1" }, "engines": { - "node": "16.x" + "node": "18.x" } }, - "node_modules/diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "node_modules/dfe-frontend-alpha/node_modules/govuk-frontend": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/govuk-frontend/-/govuk-frontend-4.8.0.tgz", + "integrity": "sha512-NOmPJxL8IYq1HSNHYKx9XY2LLTxuwb+IFASiGQO4sgJ8K7AG66SlSeqARrcetevV8zOf+i1z+MbJJ2O7//OxAw==", "engines": { - "node": ">=0.3.1" + "node": ">= 4.2.0" } }, "node_modules/diff-sequences": { @@ -5981,25 +5166,6 @@ "node": ">=8" } }, - "node_modules/diverged": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/diverged/-/diverged-0.1.3.tgz", - "integrity": "sha512-W8BLyp4Eo+YW9uQ3F5c9BXDT9ITCARA2CFQVb+v57FWYfkr0XjwNOASZacDCq+syk1i/obZ4BZ3w1qtlRO6hQw==", - "dependencies": { - "diff": "^3.5.0", - "pixelmatch": "^4.0.2", - "pngjs": "^3.3.3", - "super-simple-web-server": "^1.0.0" - } - }, - "node_modules/diverged/node_modules/pngjs": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", - "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==", - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -6057,6 +5223,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "deprecated": "Use your platform's native DOMException instead", "dependencies": { "webidl-conversions": "^5.0.0" }, @@ -6105,24 +5272,31 @@ "stream-shift": "^1.0.0" } }, - "node_modules/each-props": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", - "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", + "node_modules/duplexify/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dependencies": { - "is-plain-object": "^2.0.1", - "object.defaults": "^1.1.0" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "node_modules/each-props/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "node_modules/duplexify/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/duplexify/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" + "safe-buffer": "~5.1.0" } }, "node_modules/ee-first": { @@ -6131,9 +5305,9 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "node_modules/electron-to-chromium": { - "version": "1.4.475", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.475.tgz", - "integrity": "sha512-mTye5u5P98kSJO2n7zYALhpJDmoSQejIGya0iR01GpoRady8eK3bw7YHHnjA1Rfi4ZSLdpuzlAC7Zw+1Zu7Z6A==" + "version": "1.4.676", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.676.tgz", + "integrity": "sha512-uHt4FB8SeYdhcOsj2ix/C39S7sPSNFJpzShjxGOm1KdF4MHyGqGi389+T5cErsodsijojXilYaHIKKqJfqh7uQ==" }, "node_modules/elliptic": { "version": "6.5.4", @@ -6250,54 +5424,29 @@ "is-arrayish": "^0.2.1" } }, - "node_modules/es-module-lexer": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.0.tgz", - "integrity": "sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA==" - }, - "node_modules/es5-ext": { - "version": "0.10.62", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz", - "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==", - "hasInstallScript": true, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", "dependencies": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "next-tick": "^1.1.0" + "get-intrinsic": "^1.2.4" }, "engines": { - "node": ">=0.10" - } - }, - "node_modules/es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" + "node": ">= 0.4" } }, - "node_modules/es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" } }, - "node_modules/es6-weak-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", - "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", - "dependencies": { - "d": "1", - "es5-ext": "^0.10.46", - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.1" - } + "node_modules/es-module-lexer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", + "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==" }, "node_modules/esbuild": { "version": "0.18.17", @@ -6348,9 +5497,9 @@ } }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "engines": { "node": ">=6" } @@ -6559,9 +5708,9 @@ } }, "node_modules/eslint/node_modules/globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dependencies": { "type-fest": "^0.20.2" }, @@ -6592,9 +5741,9 @@ } }, "node_modules/eslint/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -6859,83 +6008,41 @@ "node": ">=0.10.0" } }, - "node_modules/expand-brackets/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "node_modules/expand-brackets/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dependencies": { - "kind-of": "^3.0.2" + "is-extendable": "^0.1.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "node_modules/expand-brackets/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", "dependencies": { - "is-buffer": "^1.1.5" + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, - "node_modules/expand-brackets/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/expand-brackets/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "dependencies": { - "kind-of": "^3.0.2" - }, + "node_modules/expand-brackets/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", "engines": { "node": ">=0.10.0" } }, - "node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", - "dependencies": { - "homedir-polyfill": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } + "node_modules/expand-brackets/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "node_modules/expect": { "version": "26.6.2", @@ -6983,196 +6090,18 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, - "node_modules/express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/express/node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/express/node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/express/node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/express/node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/express/node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/express/node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/express/node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/express/node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "node_modules/express/node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/ext": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", - "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", - "dependencies": { - "type": "^2.7.2" - } - }, - "node_modules/ext/node_modules/type": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" - }, "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" }, "node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", "dependencies": { - "is-extendable": "^0.1.0" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "engines": { "node": ">=0.10.0" @@ -7207,37 +6136,23 @@ "node": ">=0.10.0" } }, - "node_modules/extract-zip": { + "node_modules/extglob/node_modules/extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dependencies": { - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "bin": { - "extract-zip": "cli.js" + "is-extendable": "^0.1.0" }, "engines": { - "node": ">= 10.17.0" - }, - "optionalDependencies": { - "@types/yauzl": "^2.9.1" + "node": ">=0.10.0" } }, - "node_modules/extract-zip/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dependencies": { - "pump": "^3.0.0" - }, + "node_modules/extglob/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, "node_modules/fancy-log": { @@ -7260,9 +6175,9 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "node_modules/fast-glob": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", - "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -7274,59 +6189,6 @@ "node": ">=8.6.0" } }, - "node_modules/fast-glob/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fast-glob/node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fast-glob/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/fast-glob/node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/fast-glob/node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -7346,9 +6208,9 @@ } }, "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dependencies": { "reusify": "^1.0.4" } @@ -7372,18 +6234,11 @@ "bser": "2.1.1" } }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "dependencies": { - "pend": "~1.2.0" - } - }, "node_modules/figgy-pudding": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", - "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==" + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", + "deprecated": "This module is no longer supported." }, "node_modules/file-entry-cache": { "version": "6.0.1", @@ -7403,17 +6258,14 @@ "optional": true }, "node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "to-regex-range": "^5.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/finalhandler": { @@ -7488,70 +6340,23 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/findup-sync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", - "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dependencies": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/fined": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", - "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", - "dependencies": { - "expand-tilde": "^2.0.2", - "is-plain-object": "^2.0.3", - "object.defaults": "^1.1.0", - "object.pick": "^1.2.0", - "parse-filepath": "^1.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/fined/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/flagged-respawn": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", - "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" }, "engines": { "node": "^10.12.0 || >=12.0.0" } }, "node_modules/flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==" + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.0.tgz", + "integrity": "sha512-noqGuLw158+DuD9UPRKHpJ2hGxpFyDlYYrfM0mWt4XhT4n0lwzTLh70Tkdyy4kyTmyTT9Bv7bWAJqw7cgkEXDg==" }, "node_modules/flush-write-stream": { "version": "1.1.1", @@ -7562,10 +6367,37 @@ "readable-stream": "^2.3.6" } }, + "node_modules/flush-write-stream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/flush-write-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/flush-write-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==", "funding": [ { "type": "individual", @@ -7589,17 +6421,6 @@ "node": ">=0.10.0" } }, - "node_modules/for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==", - "dependencies": { - "for-in": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/form-data": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", @@ -7613,14 +6434,6 @@ "node": ">= 6" } }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/fragment-cache": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", @@ -7654,41 +6467,38 @@ "readable-stream": "^2.0.0" } }, - "node_modules/fs": { - "version": "0.0.1-security", - "resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz", - "integrity": "sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w==" - }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" - }, - "node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "node_modules/from2/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "node_modules/fs-mkdirp-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", - "integrity": "sha512-+vSd9frUnapVC2RZYfL3FCB2p3g4TBhaUmrsWlSudsGdnxIuUvBB2QM1VZeBtc49QFwrp+wQLrDs3+xxDgI5gQ==", + "node_modules/from2/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/from2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dependencies": { - "graceful-fs": "^4.1.11", - "through2": "^2.0.3" - }, - "engines": { - "node": ">= 0.10" + "safe-buffer": "~5.1.0" } }, + "node_modules/fs": { + "version": "0.0.1-security", + "resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz", + "integrity": "sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w==" + }, "node_modules/fs-write-stream-atomic": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", @@ -7700,6 +6510,33 @@ "readable-stream": "1 || 2" } }, + "node_modules/fs-write-stream-atomic/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/fs-write-stream-atomic/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/fs-write-stream-atomic/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -7719,9 +6556,12 @@ } }, "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/functional-red-black-tree": { "version": "1.0.1", @@ -7745,14 +6585,18 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", - "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", "has-proto": "^1.0.1", - "has-symbols": "^1.0.3" + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -7823,186 +6667,33 @@ "node": ">= 6" } }, - "node_modules/glob-stream": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", - "integrity": "sha512-uMbLGAP3S2aDOHUDfdoYcdIePUCfysbAd0IAoWVZbeGU/oNQ8asHVSshLDJUPWxfzj8zsCG7/XeHPHTtow0nsw==", - "dependencies": { - "extend": "^3.0.0", - "glob": "^7.1.1", - "glob-parent": "^3.1.0", - "is-negated-glob": "^1.0.0", - "ordered-read-streams": "^1.0.0", - "pumpify": "^1.3.5", - "readable-stream": "^2.1.5", - "remove-trailing-separator": "^1.0.1", - "to-absolute-glob": "^2.0.0", - "unique-stream": "^2.0.2" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/glob-stream/node_modules/glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", - "dependencies": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - } - }, - "node_modules/glob-stream/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/glob-to-regexp": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" }, - "node_modules/glob-watcher": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz", - "integrity": "sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==", - "dependencies": { - "anymatch": "^2.0.0", - "async-done": "^1.2.0", - "chokidar": "^2.0.0", - "is-negated-glob": "^1.0.0", - "just-debounce": "^1.0.0", - "normalize-path": "^3.0.0", - "object.defaults": "^1.1.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/glob-watcher/node_modules/binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-watcher/node_modules/chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies", - "dependencies": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - }, - "optionalDependencies": { - "fsevents": "^1.2.7" - } - }, - "node_modules/glob-watcher/node_modules/fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "deprecated": "The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "dependencies": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/glob-watcher/node_modules/glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", - "dependencies": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - } - }, - "node_modules/glob-watcher/node_modules/glob-parent/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-watcher/node_modules/is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", - "dependencies": { - "binary-extensions": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-watcher/node_modules/readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dependencies": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "engines": { - "node": ">=0.10" - } - }, "node_modules/global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", "dependencies": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" + "global-prefix": "^3.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, "node_modules/global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", "dependencies": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, "node_modules/global-prefix/node_modules/which": { @@ -8044,9 +6735,9 @@ } }, "node_modules/globby/node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", "engines": { "node": ">= 4" } @@ -8081,10 +6772,21 @@ "node": ">=0.6.0" } }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/govuk-frontend": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/govuk-frontend/-/govuk-frontend-4.7.0.tgz", - "integrity": "sha512-0OsdCusF5qvLWwKziU8zqxiC0nq6WP0ZQuw51ymZ/1V0tO71oIKMlSLN2S9bm8RcEGSoidPt2A34gKxePrLjvg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/govuk-frontend/-/govuk-frontend-5.1.0.tgz", + "integrity": "sha512-Dc3J+uOI4i2VR3BVyfxbf6qVjTT4n4bBqbD0/Io6feP8pt/4IfKdP1vWimZf+BwMKKMXacw10hmdy5UcD6Cr8w==", "engines": { "node": ">= 4.2.0" } @@ -8100,23 +6802,6 @@ "integrity": "sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==", "optional": true }, - "node_modules/gulp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", - "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", - "dependencies": { - "glob-watcher": "^5.0.3", - "gulp-cli": "^2.2.0", - "undertaker": "^1.2.1", - "vinyl-fs": "^3.0.0" - }, - "bin": { - "gulp": "bin/gulp.js" - }, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/gulp-clean": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/gulp-clean/-/gulp-clean-0.4.0.tgz", @@ -8154,44 +6839,18 @@ "node": ">=0.10.0" } }, - "node_modules/gulp-clean-css/node_modules/arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp-clean-css/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp-clean-css/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dependencies": { - "is-plain-object": "^2.0.4" - }, + "node_modules/gulp-clean-css/node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", "engines": { "node": ">=0.10.0" } }, - "node_modules/gulp-clean-css/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dependencies": { - "isobject": "^3.0.1" - }, + "node_modules/gulp-clean-css/node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", "engines": { "node": ">=0.10.0" } @@ -8229,221 +6888,6 @@ "rimraf": "bin.js" } }, - "node_modules/gulp-cli": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.3.0.tgz", - "integrity": "sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==", - "dependencies": { - "ansi-colors": "^1.0.1", - "archy": "^1.0.0", - "array-sort": "^1.0.0", - "color-support": "^1.1.3", - "concat-stream": "^1.6.0", - "copy-props": "^2.0.1", - "fancy-log": "^1.3.2", - "gulplog": "^1.0.0", - "interpret": "^1.4.0", - "isobject": "^3.0.1", - "liftoff": "^3.1.0", - "matchdep": "^2.0.0", - "mute-stdout": "^1.0.0", - "pretty-hrtime": "^1.0.0", - "replace-homedir": "^1.0.0", - "semver-greatest-satisfied-range": "^1.1.0", - "v8flags": "^3.2.0", - "yargs": "^7.1.0" - }, - "bin": { - "gulp": "bin/gulp.js" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/gulp-cli/node_modules/ansi-colors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", - "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", - "dependencies": { - "ansi-wrap": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp-cli/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp-cli/node_modules/camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp-cli/node_modules/cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==", - "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - } - }, - "node_modules/gulp-cli/node_modules/find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", - "dependencies": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp-cli/node_modules/get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" - }, - "node_modules/gulp-cli/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp-cli/node_modules/path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", - "dependencies": { - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp-cli/node_modules/path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", - "dependencies": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp-cli/node_modules/read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", - "dependencies": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp-cli/node_modules/read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", - "dependencies": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp-cli/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp-cli/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp-cli/node_modules/wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==", - "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp-cli/node_modules/y18n": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", - "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==" - }, - "node_modules/gulp-cli/node_modules/yargs": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.2.tgz", - "integrity": "sha512-ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA==", - "dependencies": { - "camelcase": "^3.0.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^1.0.2", - "which-module": "^1.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^5.0.1" - } - }, - "node_modules/gulp-cli/node_modules/yargs-parser": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.1.tgz", - "integrity": "sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==", - "dependencies": { - "camelcase": "^3.0.0", - "object.assign": "^4.1.0" - } - }, "node_modules/gulp-connect": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/gulp-connect/-/gulp-connect-5.7.0.tgz", @@ -8521,44 +6965,18 @@ "node": ">=0.10.0" } }, - "node_modules/gulp-sass/node_modules/arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp-sass/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp-sass/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dependencies": { - "is-plain-object": "^2.0.4" - }, + "node_modules/gulp-sass/node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", "engines": { "node": ">=0.10.0" } }, - "node_modules/gulp-sass/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dependencies": { - "isobject": "^3.0.1" - }, + "node_modules/gulp-sass/node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", "engines": { "node": ">=0.10.0" } @@ -8602,40 +7020,6 @@ "vinyl-sourcemaps-apply": "^0.2.0" } }, - "node_modules/gulp-uglify/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp-uglify/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp-uglify/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/gulp-zip": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/gulp-zip/-/gulp-zip-4.2.0.tgz", @@ -8670,17 +7054,6 @@ "node": ">=6" } }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -8701,20 +7074,20 @@ } }, "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dependencies": { - "get-intrinsic": "^1.1.1" + "es-define-property": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", "engines": { "node": ">= 0.4" }, @@ -8763,6 +7136,28 @@ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, + "node_modules/has-values/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/has-values/node_modules/kind-of": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", @@ -8787,19 +7182,6 @@ "node": ">=4" } }, - "node_modules/hash-base/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/hash.js": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", @@ -8809,6 +7191,17 @@ "minimalistic-assert": "^1.0.1" } }, + "node_modules/hasown": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", + "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", @@ -8819,17 +7212,6 @@ "minimalistic-crypto-utils": "^1.0.1" } }, - "node_modules/homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "dependencies": { - "parse-passwd": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/hosted-git-info": { "version": "2.8.9", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", @@ -8965,19 +7347,6 @@ "readable-stream": "^3.1.1" } }, - "node_modules/htmlparser2/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/http-errors": { "version": "1.6.3", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", @@ -9330,59 +7699,15 @@ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, - "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-absolute": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", - "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", - "dependencies": { - "is-relative": "^1.0.0", - "is-windows": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz", + "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==", "dependencies": { - "kind-of": "^6.0.0" + "hasown": "^2.0.0" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "engines": { - "node": ">=0.10.0" + "node": ">= 0.10" } }, "node_modules/is-alphabetical": { @@ -9457,33 +7782,25 @@ } }, "node_modules/is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dependencies": { - "has": "^1.0.3" + "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", + "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", "dependencies": { - "kind-of": "^6.0.0" + "hasown": "^2.0.0" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, "node_modules/is-decimal": { @@ -9496,24 +7813,15 @@ } }, "node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-descriptor/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, "node_modules/is-docker": { @@ -9532,9 +7840,12 @@ } }, "node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dependencies": { + "is-plain-object": "^2.0.4" + }, "engines": { "node": ">=0.10.0" } @@ -9583,39 +7894,12 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/is-negated-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", - "integrity": "sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dependencies": { - "is-buffer": "^1.1.5" - }, + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "engines": { - "node": ">=0.10.0" + "node": ">=0.12.0" } }, "node_modules/is-plain-obj": { @@ -9627,9 +7911,12 @@ } }, "node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dependencies": { + "isobject": "^3.0.1" + }, "engines": { "node": ">=0.10.0" } @@ -9647,17 +7934,6 @@ "node": ">=6" } }, - "node_modules/is-relative": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", - "dependencies": { - "is-unc-path": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", @@ -9674,17 +7950,6 @@ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" }, - "node_modules/is-unc-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", - "dependencies": { - "unc-path-regex": "^0.1.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", @@ -9696,19 +7961,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==" - }, - "node_modules/is-valid-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", - "integrity": "sha512-AhiROmoEFDSsjx8hW+5sGwgKVIORcXnrlAx/R0ZSeaPw70Vw0CqkGBBhHGL58Uox2eXnU1AnvXJl1XlyedO5bA==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", @@ -9748,9 +8000,9 @@ } }, "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "engines": { "node": ">=8" } @@ -9816,9 +8068,9 @@ } }, "node_modules/istanbul-lib-report/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -9859,9 +8111,9 @@ } }, "node_modules/istanbul-reports": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", - "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" @@ -9988,11 +8240,6 @@ "node": ">=8" } }, - "node_modules/jest-cli/node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" - }, "node_modules/jest-cli/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -10004,11 +8251,6 @@ "node": ">=8" } }, - "node_modules/jest-cli/node_modules/which-module": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", - "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==" - }, "node_modules/jest-cli/node_modules/wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", @@ -10105,20 +8347,9 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-config/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/jest-config/node_modules/chalk": { @@ -10152,17 +8383,6 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, - "node_modules/jest-config/node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-config/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -10171,26 +8391,6 @@ "node": ">=8" } }, - "node_modules/jest-config/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/jest-config/node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, "node_modules/jest-config/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -10202,17 +8402,6 @@ "node": ">=8" } }, - "node_modules/jest-config/node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, "node_modules/jest-diff": { "version": "26.6.2", "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", @@ -10448,71 +8637,6 @@ "fsevents": "^2.1.2" } }, - "node_modules/jest-haste-map/node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/jest-haste-map/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-haste-map/node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-haste-map/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/jest-haste-map/node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/jest-haste-map/node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, "node_modules/jest-jasmine2": { "version": "26.6.3", "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz", @@ -10728,17 +8852,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-message-util/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-message-util/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -10770,17 +8883,6 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, - "node_modules/jest-message-util/node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-message-util/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -10789,26 +8891,6 @@ "node": ">=8" } }, - "node_modules/jest-message-util/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/jest-message-util/node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, "node_modules/jest-message-util/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -10820,17 +8902,6 @@ "node": ">=8" } }, - "node_modules/jest-message-util/node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, "node_modules/jest-mock": { "version": "26.6.2", "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-26.6.2.tgz", @@ -11159,11 +9230,6 @@ "node": ">=8" } }, - "node_modules/jest-runtime/node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" - }, "node_modules/jest-runtime/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -11175,11 +9241,6 @@ "node": ">=8" } }, - "node_modules/jest-runtime/node_modules/which-module": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", - "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==" - }, "node_modules/jest-runtime/node_modules/wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", @@ -11334,9 +9395,9 @@ } }, "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -11393,17 +9454,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-util/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-util/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -11435,17 +9485,6 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, - "node_modules/jest-util/node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-util/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -11454,26 +9493,6 @@ "node": ">=8" } }, - "node_modules/jest-util/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/jest-util/node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, "node_modules/jest-util/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -11485,17 +9504,6 @@ "node": ">=8" } }, - "node_modules/jest-util/node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, "node_modules/jest-validate": { "version": "26.6.2", "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-26.6.2.tgz", @@ -11701,22 +9709,17 @@ } }, "node_modules/joi": { - "version": "17.9.2", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.9.2.tgz", - "integrity": "sha512-Itk/r+V4Dx0V3c7RLFdRh12IOjySm2/WGPMubBT92cQvRfYZhPM2W0hZlctjj72iES8jsRCwp7S/cRmWBnJ4nw==", + "version": "17.12.1", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.12.1.tgz", + "integrity": "sha512-vtxmq+Lsc5SlfqotnfVjlViWfOL9nt/avKNbKYizwf6gsCfq9NYY/ceYRMFD8XDdrjJ9abJyScWmhmIiy+XRtQ==", "dependencies": { - "@hapi/hoek": "^9.0.0", - "@hapi/topo": "^5.0.0", - "@sideway/address": "^4.1.3", + "@hapi/hoek": "^9.3.0", + "@hapi/topo": "^5.1.0", + "@sideway/address": "^4.1.5", "@sideway/formula": "^3.0.1", "@sideway/pinpoint": "^2.0.0" } }, - "node_modules/jpeg-js": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.4.tgz", - "integrity": "sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==" - }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -11780,9 +9783,9 @@ } }, "node_modules/jsdom/node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", "bin": { "acorn": "bin/acorn" }, @@ -11801,6 +9804,11 @@ "node": ">=4" } }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, "node_modules/json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", @@ -11832,45 +9840,18 @@ "node": ">=6" } }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jump.js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/jump.js/-/jump.js-1.0.2.tgz", - "integrity": "sha512-oUkJJ/Y4ATU5qjkXBntCZSKctbSyS3ewe2jrLaUu/cc9jsQiAn0fnTUxQnZz3mJdDdem1Q279zrD6h3n+Cgxtg==" - }, - "node_modules/junit-report-builder": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/junit-report-builder/-/junit-report-builder-3.0.1.tgz", - "integrity": "sha512-B8AZ2q24iGwPM3j/ZHc9nD0BY1rKhcnWCA1UvT8mhHfR8Vo/HTtg3ojMyo55BgctqQGZG7H8z0+g+mEUc32jgg==", + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dependencies": { - "date-format": "4.0.3", - "lodash": "^4.17.21", - "make-dir": "^3.1.0", - "xmlbuilder": "^15.1.1" - }, - "engines": { - "node": ">=8" + "json-buffer": "3.0.1" } }, - "node_modules/just-debounce": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.1.0.tgz", - "integrity": "sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ==" - }, "node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "engines": { "node": ">=0.10.0" } @@ -11888,57 +9869,12 @@ "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.21.0.tgz", "integrity": "sha512-sZLUnTqimCkvkgRS+kbPlYW5o8q5w1cu+uIisKpEWkj31I8mx8kNG162DwRav8Zirkva6N5uoFsm9kzK4mUXjw==" }, - "node_modules/last-run": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", - "integrity": "sha512-U/VxvpX4N/rFvPzr3qG5EtLKEnNI0emvIQB3/ecEwv+8GHaUKbIB8vxv1Oai5FAF0d0r7LXHhLLe5K/yChm5GQ==", - "dependencies": { - "default-resolution": "^2.0.0", - "es6-weak-map": "^2.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/lazy-ass": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", - "integrity": "sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==", - "engines": { - "node": "> 0.8" - } - }, - "node_modules/lazystream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", - "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", - "dependencies": { - "readable-stream": "^2.0.5" - }, - "engines": { - "node": ">= 0.6.3" - } - }, - "node_modules/lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==", - "dependencies": { - "invert-kv": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lead": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", - "integrity": "sha512-IpSVCk9AYvLHo5ctcIXxOBpMWUe+4TKN3VPWAKUbJikkmsGp0VrSM8IttVc32D6J4WUsiPE6aEFRNmIoF/gdow==", - "dependencies": { - "flush-write-stream": "^1.0.2" - }, + "node_modules/lazy-ass": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", + "integrity": "sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==", "engines": { - "node": ">= 0.10" + "node": "> 0.8" } }, "node_modules/leven": { @@ -11961,35 +9897,6 @@ "node": ">= 0.8.0" } }, - "node_modules/liftoff": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", - "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==", - "dependencies": { - "extend": "^3.0.0", - "findup-sync": "^3.0.0", - "fined": "^1.0.1", - "flagged-respawn": "^1.0.0", - "is-plain-object": "^2.0.4", - "object.map": "^1.0.0", - "rechoir": "^0.6.2", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/liftoff/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", @@ -12000,43 +9907,6 @@ "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.4.0.tgz", "integrity": "sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw==" }, - "node_modules/load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/load-json-file/node_modules/parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", - "dependencies": { - "error-ex": "^1.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/load-json-file/node_modules/strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", - "dependencies": { - "is-utf8": "^0.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/loader-runner": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", @@ -12227,25 +10097,6 @@ "make-error": "^1.2.0" } }, - "node_modules/make-iterator": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", - "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/make-iterator/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/makeerror": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", @@ -12289,45 +10140,6 @@ "node": ">=0.10.0" } }, - "node_modules/matchdep": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", - "integrity": "sha512-LFgVbaHIHMqCRuCZyfCtUOq9/Lnzhi7Z0KFUE2fhD54+JN2jLh3hC02RLkqauJ3U4soU6H1J3tfj/Byk7GoEjA==", - "dependencies": { - "findup-sync": "^2.0.0", - "micromatch": "^3.0.4", - "resolve": "^1.4.0", - "stack-trace": "0.0.10" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/matchdep/node_modules/findup-sync": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha512-vs+3unmJT45eczmcAZ6zMJtxN3l/QXeccaXQx5cu/MeJMhewVfoWZqibRkOxPnmoR59+Zy5hjabfQc6JLSah4g==", - "dependencies": { - "detect-file": "^1.0.0", - "is-glob": "^3.1.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/matchdep/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/mathml-tag-names": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", @@ -12389,14 +10201,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/memory-fs": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", @@ -12406,6 +10210,33 @@ "readable-stream": "^2.0.1" } }, + "node_modules/memory-fs/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/memory-fs/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/memory-fs/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/meow": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", @@ -12468,9 +10299,9 @@ } }, "node_modules/meow/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -12497,11 +10328,6 @@ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" - }, "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", @@ -12515,14 +10341,6 @@ "node": ">= 8" } }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/micromark": { "version": "2.11.4", "resolved": "https://registry.npmjs.org/micromark/-/micromark-2.11.4.tgz", @@ -12543,68 +10361,15 @@ } }, "node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dependencies": { - "isobject": "^3.0.1" + "braces": "^3.0.2", + "picomatch": "^2.3.1" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "engines": { - "node": ">=0.10.0" + "node": ">=8.6" } }, "node_modules/miller-rabin": { @@ -12709,14 +10474,6 @@ "node": ">= 6" } }, - "node_modules/minimist-options/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/mississippi": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", @@ -12737,11 +10494,6 @@ "node": ">=4.0.0" } }, - "node_modules/mitt": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.0.tgz", - "integrity": "sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==" - }, "node_modules/mixin-deep": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", @@ -12754,28 +10506,6 @@ "node": ">=0.10.0" } }, - "node_modules/mixin-deep/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mixin-deep/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/mkdirp": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", @@ -12787,11 +10517,6 @@ "mkdirp": "bin/cmd.js" } }, - "node_modules/mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" - }, "node_modules/move-concurrently": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", @@ -12821,18 +10546,10 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "node_modules/mute-stdout": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", - "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==", - "engines": { - "node": ">= 0.10" - } - }, "node_modules/nan": { - "version": "2.17.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", - "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==", + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.18.0.tgz", + "integrity": "sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==", "optional": true }, "node_modules/nanomatch": { @@ -12847,53 +10564,19 @@ "fragment-cache": "^0.2.1", "is-windows": "^1.0.2", "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nanomatch/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nanomatch/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nanomatch/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dependencies": { - "isobject": "^3.0.1" + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/nanomatch/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "node_modules/nanomatch/node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", "engines": { "node": ">=0.10.0" } @@ -12916,20 +10599,15 @@ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, - "node_modules/next-tick": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" - }, "node_modules/nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" }, "node_modules/node-fetch": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz", - "integrity": "sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -12999,32 +10677,36 @@ "vm-browserify": "^1.0.1" } }, - "node_modules/node-libs-browser/node_modules/buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "dependencies": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "node_modules/node-libs-browser/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" - }, "node_modules/node-libs-browser/node_modules/punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" }, - "node_modules/node-libs-browser/node_modules/util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "node_modules/node-libs-browser/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dependencies": { - "inherits": "2.0.3" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/node-libs-browser/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/node-libs-browser/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" } }, "node_modules/node-notifier": { @@ -13054,9 +10736,9 @@ } }, "node_modules/node-notifier/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "optional": true, "dependencies": { "lru-cache": "^6.0.0" @@ -13075,9 +10757,9 @@ "optional": true }, "node_modules/node-releases": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==" + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" }, "node_modules/normalize-package-data": { "version": "2.5.0", @@ -13119,17 +10801,6 @@ "resolved": "https://registry.npmjs.org/normalize-selector/-/normalize-selector-0.2.0.tgz", "integrity": "sha512-dxvWdI8gw6eAvk9BlPffgEoGfM7AdijoCwOEJge3e3ulT2XLgmU7KvvxprOaCu05Q1uGRHmOhHe1r6emZoKyFw==" }, - "node_modules/now-and-later": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", - "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", - "dependencies": { - "once": "^1.3.2" - }, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", @@ -13146,14 +10817,6 @@ "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", "integrity": "sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg==" }, - "node_modules/number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/nunjucks": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.4.tgz", @@ -13223,52 +10886,21 @@ "node": ">=0.10.0" } }, - "node_modules/object-copy/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/object-copy/node_modules/is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, - "node_modules/object-copy/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/object-copy/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, "node_modules/object-copy/node_modules/kind-of": { @@ -13282,18 +10914,10 @@ "node": ">=0.10.0" } }, - "node_modules/object-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "engines": { - "node": ">= 6" - } - }, "node_modules/object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -13318,12 +10942,12 @@ } }, "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", "has-symbols": "^1.0.3", "object-keys": "^1.1.1" }, @@ -13334,32 +10958,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object.defaults": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==", - "dependencies": { - "array-each": "^1.0.1", - "array-slice": "^1.0.0", - "for-own": "^1.0.0", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", - "integrity": "sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==", - "dependencies": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", @@ -13371,18 +10969,6 @@ "node": ">=0.10.0" } }, - "node_modules/object.reduce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", - "integrity": "sha512-naLhxxpUESbNkRqc35oQ2scZSJueHGQNUfMW/0U37IgN6tE2dgDWg3whf+NEliy3F/QysrO48XKUz/nGPe+AQw==", - "dependencies": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", @@ -13424,25 +11010,6 @@ "opencollective-postinstall": "index.js" } }, - "node_modules/opn": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", - "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", - "dependencies": { - "is-wsl": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/opn/node_modules/is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", - "engines": { - "node": ">=4" - } - }, "node_modules/optionator": { "version": "0.9.3", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", @@ -13459,35 +11026,11 @@ "node": ">= 0.8.0" } }, - "node_modules/ordered-read-streams": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", - "integrity": "sha512-Z87aSjx3r5c0ZB7bcJqIgIRX5bxR7A4aSzvIbaxd0oTkWBCOoKfuGHiKj60CHVUgg1Phm5yMZzBdt8XqRs73Mw==", - "dependencies": { - "readable-stream": "^2.0.1" - } - }, - "node_modules/os": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/os/-/os-0.1.2.tgz", - "integrity": "sha512-ZoXJkvAnljwvc56MbvhtKVWmSkzV712k42Is2mA0+0KTSRakq5XXuXpjZjgAt9ctzl51ojhQWakQQpmOvXWfjQ==" - }, "node_modules/os-browserify": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==" }, - "node_modules/os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==", - "dependencies": { - "lcid": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/p-each-series": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz", @@ -13532,20 +11075,6 @@ "node": ">=8" } }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", @@ -13569,6 +11098,33 @@ "readable-stream": "^2.1.5" } }, + "node_modules/parallel-transform/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/parallel-transform/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/parallel-transform/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -13609,19 +11165,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/parse-filepath": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==", - "dependencies": { - "is-absolute": "^1.0.0", - "map-cache": "^0.2.0", - "path-root": "^0.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, "node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -13647,14 +11190,6 @@ "node": ">= 0.10" } }, - "node_modules/parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/parse5": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", @@ -13676,15 +11211,6 @@ "node": ">=0.10.0" } }, - "node_modules/path": { - "version": "0.12.7", - "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", - "integrity": "sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q==", - "dependencies": { - "process": "^0.11.1", - "util": "^0.10.3" - } - }, "node_modules/path-browserify": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", @@ -13693,7 +11219,8 @@ "node_modules/path-dirname": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==" + "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==", + "optional": true }, "node_modules/path-exists": { "version": "4.0.0", @@ -13724,30 +11251,6 @@ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, - "node_modules/path-root": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==", - "dependencies": { - "path-root-regex": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-root-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" - }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -13779,11 +11282,6 @@ "node": ">=0.12" } }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" - }, "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", @@ -13801,30 +11299,11 @@ } }, "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", - "dependencies": { - "pinkie": "^2.0.0" - }, + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, "node_modules/pirates": { @@ -13835,60 +11314,15 @@ "node": ">= 6" } }, - "node_modules/pixelmatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz", - "integrity": "sha512-J8B6xqiO37sU/gkcMglv6h5Jbd9xNER7aHzpfRdNmV4IbQBzBpe4l9XmbG+xPF/znacgu2jfEw+wHffaq/YkXA==", - "dependencies": { - "pngjs": "^3.0.0" - }, - "bin": { - "pixelmatch": "bin/pixelmatch" - } - }, - "node_modules/pixelmatch/node_modules/pngjs": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", - "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/playwright": { - "version": "1.36.2", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.36.2.tgz", - "integrity": "sha512-4Fmlq3KWsl85Bl4InJw1NC21aeQV0iSZuFvTDcy1F8zVmXmgQRe89GxF8zMSRt/KIS+2tUolak7EXVl9aC+JdA==", - "hasInstallScript": true, - "dependencies": { - "playwright-core": "1.36.2" - }, - "bin": { - "playwright": "cli.js" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/playwright-core": { - "version": "1.36.2", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.36.2.tgz", - "integrity": "sha512-sQYZt31dwkqxOrP7xy2ggDfEzUxM1lodjhsQ3NMMv5uGTRDsLxU0e4xf4wwMkF2gplIxf17QMBCodSFgm6bFVQ==", - "bin": { - "playwright-core": "cli.js" + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dependencies": { + "find-up": "^4.0.0" }, "engines": { - "node": ">=16" + "node": ">=8" } }, "node_modules/please-upgrade-node": { @@ -13914,26 +11348,6 @@ "node": ">=0.10.0" } }, - "node_modules/plugin-error/node_modules/arr-diff": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz", - "integrity": "sha512-OQwDZUqYaQwyyhDJHThmzId8daf4/RFNLaeh3AevmSeZ5Y7ug4Ga/yKc6l6kTZOBW781rCj103ZuTh8GAsB3+Q==", - "dependencies": { - "arr-flatten": "^1.0.1", - "array-slice": "^0.2.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/plugin-error/node_modules/array-slice": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", - "integrity": "sha512-rlVfZW/1Ph2SNySXwR9QYkChp8EkOEiTMO5Vwx60usw04i4nWemkm9RXmQqgkQFaLHsqLuADvjp6IfgL9l2M8Q==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/plugin-error/node_modules/extend-shallow": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz", @@ -13953,43 +11367,6 @@ "node": ">=0.10.0" } }, - "node_modules/pngjs": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-6.0.0.tgz", - "integrity": "sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg==", - "engines": { - "node": ">=12.13.0" - } - }, - "node_modules/portfinder": { - "version": "1.0.32", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz", - "integrity": "sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==", - "dependencies": { - "async": "^2.6.4", - "debug": "^3.2.7", - "mkdirp": "^0.5.6" - }, - "engines": { - "node": ">= 0.12.0" - } - }, - "node_modules/portfinder/node_modules/async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/portfinder/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dependencies": { - "ms": "^2.1.1" - } - }, "node_modules/posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", @@ -14079,9 +11456,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.0.13", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", - "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", + "version": "6.0.15", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", + "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -14172,14 +11549,6 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, - "node_modules/pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", @@ -14218,23 +11587,6 @@ "node": ">= 6" } }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, "node_modules/prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", @@ -14306,113 +11658,17 @@ } }, "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "engines": { "node": ">=6" } }, - "node_modules/puppeteer": { - "version": "19.11.1", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-19.11.1.tgz", - "integrity": "sha512-39olGaX2djYUdhaQQHDZ0T0GwEp+5f9UB9HmEP0qHfdQHIq0xGQZuAZ5TLnJIc/88SrPLpEflPC+xUqOTv3c5g==", - "hasInstallScript": true, - "dependencies": { - "@puppeteer/browsers": "0.5.0", - "cosmiconfig": "8.1.3", - "https-proxy-agent": "5.0.1", - "progress": "2.0.3", - "proxy-from-env": "1.1.0", - "puppeteer-core": "19.11.1" - } - }, - "node_modules/puppeteer-core": { - "version": "19.11.1", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-19.11.1.tgz", - "integrity": "sha512-qcuC2Uf0Fwdj9wNtaTZ2OvYRraXpAK+puwwVW8ofOhOgLPZyz1c68tsorfIZyCUOpyBisjr+xByu7BMbEYMepA==", - "dependencies": { - "@puppeteer/browsers": "0.5.0", - "chromium-bidi": "0.4.7", - "cross-fetch": "3.1.5", - "debug": "4.3.4", - "devtools-protocol": "0.0.1107588", - "extract-zip": "2.0.1", - "https-proxy-agent": "5.0.1", - "proxy-from-env": "1.1.0", - "tar-fs": "2.1.1", - "unbzip2-stream": "1.4.3", - "ws": "8.13.0" - }, - "engines": { - "node": ">=14.14.0" - }, - "peerDependencies": { - "typescript": ">= 4.7.4" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/puppeteer-core/node_modules/ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/puppeteer/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "node_modules/puppeteer/node_modules/cosmiconfig": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.1.3.tgz", - "integrity": "sha512-/UkO2JKI18b5jVMJUp0lvKFMpa/Gye+ZgZjKD+DGEN9y7NRcf/nK1A0sp67ONmKtnDCNMS44E6jrk0Yc3bDuUw==", - "dependencies": { - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - } - }, - "node_modules/puppeteer/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", "dependencies": { "side-channel": "^1.0.4" }, @@ -14489,54 +11745,21 @@ } }, "node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/raw-body/node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/raw-body/node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.1.7.tgz", + "integrity": "sha512-WmJJU2e9Y6M5UzTOkHaM7xJGAPQD8PNzx3bAd2+uhZAim6wDk6dAZxPVYLF67XhbR4hmKGh33Lpmh4XWrCH5Mg==", "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" + "bytes": "1", + "string_decoder": "0.10" }, "engines": { - "node": ">= 0.8" + "node": ">= 0.8.0" } }, - "node_modules/raw-body/node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "node_modules/raw-body/node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "engines": { - "node": ">= 0.8" - } + "node_modules/raw-body/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" }, "node_modules/react-is": { "version": "17.0.2", @@ -14590,24 +11813,18 @@ } }, "node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" } }, - "node_modules/readable-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -14619,17 +11836,6 @@ "node": ">=8.10.0" } }, - "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", - "dependencies": { - "resolve": "^1.1.6" - }, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/redent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", @@ -14648,9 +11854,9 @@ "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" }, "node_modules/regenerate-unicode-properties": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", - "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", "dependencies": { "regenerate": "^1.4.2" }, @@ -14659,14 +11865,14 @@ } }, "node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" }, "node_modules/regenerator-transform": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", - "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", "dependencies": { "@babel/runtime": "^7.8.4" } @@ -14683,40 +11889,6 @@ "node": ">=0.10.0" } }, - "node_modules/regex-not/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regex-not/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regex-not/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/regexpp": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", @@ -14801,36 +11973,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remove-bom-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", - "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", - "dependencies": { - "is-buffer": "^1.1.5", - "is-utf8": "^0.2.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/remove-bom-buffer/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/remove-bom-stream": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", - "integrity": "sha512-wigO8/O08XHb8YPzpDDT+QmRANfW6vLqxfaXm1YXhnFf3AkSLyjfG3GEFg4McZkmgL7KvCj5u2KczkvSP6NfHA==", - "dependencies": { - "remove-bom-buffer": "^3.0.0", - "safe-buffer": "^5.1.0", - "through2": "^2.0.3" - }, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", @@ -14860,19 +12002,6 @@ "node": ">= 0.10" } }, - "node_modules/replace-homedir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", - "integrity": "sha512-CHPV/GAglbIB1tnQgaiysb8H2yCy8WQ7lcEwQ/eT+kLj0QHV8LnJW0zpqpE7RSkrMSRoa+EBoag86clf7WAgSg==", - "dependencies": { - "homedir-polyfill": "^1.0.1", - "is-absolute": "^1.0.0", - "remove-trailing-separator": "^1.1.0" - }, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -14890,9 +12019,9 @@ } }, "node_modules/require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" }, "node_modules/requires-port": { "version": "1.0.0", @@ -14900,11 +12029,11 @@ "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" }, "node_modules/resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dependencies": { - "is-core-module": "^2.11.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -14934,18 +12063,6 @@ "node": ">=8" } }, - "node_modules/resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", - "dependencies": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -14954,17 +12071,6 @@ "node": ">=4" } }, - "node_modules/resolve-options": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", - "integrity": "sha512-NYDgziiroVeDC29xq7bp/CacZERYsA9bXYd1ZmcJlF3BcrZv5pTb4NG7SjdyKDnXZ84aC4vo2u6sNKIA1LCu/A==", - "dependencies": { - "value-or-function": "^3.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", @@ -15120,6 +12226,54 @@ "node": "6.* || 8.* || >= 10.*" } }, + "node_modules/sane/node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/sane/node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/sane/node_modules/cross-spawn": { "version": "6.0.5", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", @@ -15152,6 +12306,31 @@ "node": ">=6" } }, + "node_modules/sane/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/sane/node_modules/get-stream": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", @@ -15163,6 +12342,41 @@ "node": ">=6" } }, + "node_modules/sane/node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "node_modules/sane/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/sane/node_modules/is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", @@ -15171,6 +12385,40 @@ "node": ">=0.10.0" } }, + "node_modules/sane/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/sane/node_modules/npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", @@ -15217,6 +12465,18 @@ "node": ">=0.10.0" } }, + "node_modules/sane/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/sane/node_modules/which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", @@ -15229,9 +12489,9 @@ } }, "node_modules/sass": { - "version": "1.64.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.64.1.tgz", - "integrity": "sha512-16rRACSOFEE8VN7SCgBu1MpYCyN7urj9At898tyzdXFhC+a+yOX5dXwAR7L8/IdPJ1NB8OYoXmD55DM30B2kEQ==", + "version": "1.71.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.71.0.tgz", + "integrity": "sha512-HKKIKf49Vkxlrav3F/w6qRuPcmImGVbIXJ2I3Kg0VMA+3Bav+8yE9G5XmP5lMj6nl4OlqbPftGAscNaNu28b8w==", "dependencies": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0", @@ -15285,17 +12545,6 @@ "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==" }, - "node_modules/semver-greatest-satisfied-range": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", - "integrity": "sha512-Ny/iyOzSSa8M5ML46IAx3iXc6tfOsYU2R4AXi2UpHk60Zrgyq6eqPj/xiOfS0rRl/iiQ/rdJkVjw/5cdUyCntQ==", - "dependencies": { - "sver-compat": "^1.5.0" - }, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/semver-regex": { "version": "3.1.4", "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-3.1.4.tgz", @@ -15352,9 +12601,9 @@ } }, "node_modules/serialize-javascript": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", - "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", "dependencies": { "randombytes": "^2.1.0" } @@ -15516,6 +12765,22 @@ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" }, + "node_modules/set-function-length": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz", + "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==", + "dependencies": { + "define-data-property": "^1.1.2", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/set-value": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", @@ -15530,17 +12795,25 @@ "node": ">=0.10.0" } }, - "node_modules/set-value/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "node_modules/set-value/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dependencies": { - "isobject": "^3.0.1" + "is-extendable": "^0.1.0" }, "engines": { "node": ">=0.10.0" } }, + "node_modules/set-value/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", @@ -15589,13 +12862,17 @@ "optional": true }, "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.5.tgz", + "integrity": "sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ==", "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -15753,64 +13030,33 @@ "node": ">=0.10.0" } }, - "node_modules/snapdragon/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/snapdragon/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "node_modules/snapdragon/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dependencies": { - "kind-of": "^3.0.2" + "is-extendable": "^0.1.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "node_modules/snapdragon/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", "dependencies": { - "is-buffer": "^1.1.5" + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, - "node_modules/snapdragon/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, + "node_modules/snapdragon/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", "engines": { "node": ">=0.10.0" } @@ -15900,9 +13146,9 @@ } }, "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==" }, "node_modules/spdx-expression-parse": { "version": "3.0.1", @@ -15914,9 +13160,9 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", - "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==" + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", + "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==" }, "node_modules/specificity": { "version": "0.4.1", @@ -15948,40 +13194,6 @@ "node": ">=0.10.0" } }, - "node_modules/split-string/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/split-string/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/split-string/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -15992,15 +13204,7 @@ "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", "dependencies": { - "figgy-pudding": "^3.5.1" - } - }, - "node_modules/stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", - "engines": { - "node": "*" + "figgy-pudding": "^3.5.1" } }, "node_modules/stack-utils": { @@ -16117,9 +13321,9 @@ } }, "node_modules/start-server-and-test/node_modules/tslib": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", - "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, "node_modules/start-server-and-test/node_modules/wait-on": { "version": "7.0.1", @@ -16162,66 +13366,16 @@ "node": ">=0.10.0" } }, - "node_modules/static-extend/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/static-extend/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/static-extend/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, "node_modules/statuses": { @@ -16241,6 +13395,33 @@ "readable-stream": "^2.0.2" } }, + "node_modules/stream-browserify/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/stream-browserify/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/stream-browserify/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/stream-combiner": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", @@ -16258,11 +13439,6 @@ "stream-shift": "^1.0.0" } }, - "node_modules/stream-exhaust": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", - "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==" - }, "node_modules/stream-http": { "version": "2.8.3", "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", @@ -16275,12 +13451,26 @@ "xtend": "^4.0.0" } }, - "node_modules/stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" + "node_modules/stream-http/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } }, - "node_modules/string_decoder": { + "node_modules/stream-http/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/stream-http/node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", @@ -16288,10 +13478,18 @@ "safe-buffer": "~5.1.0" } }, - "node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "node_modules/stream-shift": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", + "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==" + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } }, "node_modules/string-length": { "version": "4.0.2", @@ -16500,17 +13698,6 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==" }, - "node_modules/stylelint/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/stylelint/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -16542,41 +13729,6 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, - "node_modules/stylelint/node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/stylelint/node_modules/global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "dependencies": { - "global-prefix": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/stylelint/node_modules/global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "dependencies": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/stylelint/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -16586,41 +13738,13 @@ } }, "node_modules/stylelint/node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", "engines": { "node": ">= 4" } }, - "node_modules/stylelint/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/stylelint/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stylelint/node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, "node_modules/stylelint/node_modules/resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", @@ -16640,28 +13764,6 @@ "node": ">=8" } }, - "node_modules/stylelint/node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/stylelint/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, "node_modules/sugarss": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/sugarss/-/sugarss-2.0.0.tgz", @@ -16670,14 +13772,6 @@ "postcss": "^7.0.2" } }, - "node_modules/super-simple-web-server": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/super-simple-web-server/-/super-simple-web-server-1.1.4.tgz", - "integrity": "sha512-sQdVXz8ZDBMloocL63mifyVVzhxP55MlO2F0MiYJAJQiHTp42M2C3m2dZBIxGkcC7NUDr1/p0UhvGQvOsxZLpw==", - "dependencies": { - "express": "^4.16.3" - } - }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -16731,15 +13825,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/sver-compat": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", - "integrity": "sha512-aFTHfmjwizMNlNE6dsGmoAM4lHjL0CyiobWaFiXWSlD7cIxshW422Nb8KbXCmR6z+0ZEPY+daXJrDyh/vuwTyg==", - "dependencies": { - "es6-iterator": "^2.0.1", - "es6-symbol": "^3.1.1" - } - }, "node_modules/svg-tags": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", @@ -16793,68 +13878,6 @@ "node": ">=6" } }, - "node_modules/tar-fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", - "dependencies": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" - } - }, - "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tar-stream/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/temp": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/temp/-/temp-0.9.4.tgz", - "integrity": "sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA==", - "dependencies": { - "mkdirp": "^0.5.1", - "rimraf": "~2.6.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/temp/node_modules/rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, "node_modules/terminal-link": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", @@ -16871,9 +13894,9 @@ } }, "node_modules/terser": { - "version": "5.19.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.19.2.tgz", - "integrity": "sha512-qC5+dmecKJA4cpYxRa5aVkKehYsQKc+AHeKl0Oe62aYjBL8ZA33tTljktDHJSaxxMnbI5ZYw+o/S2DxxLu8OfA==", + "version": "5.27.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.2.tgz", + "integrity": "sha512-sHXmLSkImesJ4p5apTeT63DsV4Obe1s37qT8qvwHRmVxKTBH7Rv9Wr26VcAMmLbmk9UliiwK8z+657NyJHHy/w==", "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.8.2", @@ -16888,15 +13911,15 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.9", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", - "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==", + "version": "5.3.10", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", + "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.17", + "@jridgewell/trace-mapping": "^0.3.20", "jest-worker": "^27.4.5", "schema-utils": "^3.1.1", "serialize-javascript": "^6.0.1", - "terser": "^5.16.8" + "terser": "^5.26.0" }, "engines": { "node": ">= 10.13.0" @@ -16973,9 +13996,9 @@ } }, "node_modules/terser/node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", "bin": { "acorn": "bin/acorn" }, @@ -17025,13 +14048,31 @@ "xtend": "~4.0.1" } }, - "node_modules/through2-filter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", - "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", + "node_modules/through2/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/through2/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/through2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dependencies": { - "through2": "~2.0.0", - "xtend": "~4.0.0" + "safe-buffer": "~5.1.0" } }, "node_modules/time-stamp": { @@ -17079,18 +14120,6 @@ "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" }, - "node_modules/to-absolute-glob": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", - "integrity": "sha512-rtwLUQEwT8ZeKQbyFJyomBRYXyE16U5VKuy0ftxLMK/PZb2fkOsg5r9kHdauuVDbsNdIBoC/HCthpidamQFXYA==", - "dependencies": { - "is-absolute": "^1.0.0", - "is-negated-glob": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/to-arraybuffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", @@ -17146,60 +14175,14 @@ } }, "node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-through": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", - "integrity": "sha512-+QIz37Ly7acM4EMdw2PRN389OneM5+d844tirkGp4dPKzI5OE72V9OsbFp+CIYJDahZ41ZV05hNtcPAQUAm9/Q==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dependencies": { - "through2": "^2.0.3" + "is-number": "^7.0.0" }, "engines": { - "node": ">= 0.10" + "node": ">=8.0" } }, "node_modules/toidentifier": { @@ -17224,14 +14207,6 @@ "node": ">=6" } }, - "node_modules/tough-cookie/node_modules/universalify": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", - "engines": { - "node": ">= 4.0.0" - } - }, "node_modules/tr46": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", @@ -17278,11 +14253,6 @@ "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", "integrity": "sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==" }, - "node_modules/type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" - }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -17313,18 +14283,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", @@ -17349,55 +14307,10 @@ "node": ">=0.8.0" } }, - "node_modules/unbzip2-stream": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", - "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", - "dependencies": { - "buffer": "^5.2.1", - "through": "^2.3.8" - } - }, - "node_modules/unc-path-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/undertaker": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.3.0.tgz", - "integrity": "sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==", - "dependencies": { - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "bach": "^1.0.0", - "collection-map": "^1.0.0", - "es6-weak-map": "^2.0.1", - "fast-levenshtein": "^1.0.0", - "last-run": "^1.1.0", - "object.defaults": "^1.0.0", - "object.reduce": "^1.0.0", - "undertaker-registry": "^1.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/undertaker-registry": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", - "integrity": "sha512-UR1khWeAjugW3548EfQmL9Z7pGMlBgXteQpr1IZeZBtnkCJQJIJ1Scj0mb9wQaPvUZ9Q17XqW6TIaPchJkyfqw==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/undertaker/node_modules/fast-levenshtein": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz", - "integrity": "sha512-Ia0sQNrMPXXkqVFt6w6M1n1oKo3NfKs+mvaV811Jwir7vAk9a6PVV9VPYf6X3BU97QiLEmuW3uXH9u87zDFfdw==" + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", @@ -17482,6 +14395,14 @@ "node": ">=0.10.0" } }, + "node_modules/union-value/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/unique-filename": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", @@ -17498,15 +14419,6 @@ "imurmurhash": "^0.1.4" } }, - "node_modules/unique-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", - "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", - "dependencies": { - "json-stable-stringify-without-jsonify": "^1.0.1", - "through2-filter": "^3.0.0" - } - }, "node_modules/unist-util-find-all-after": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/unist-util-find-all-after/-/unist-util-find-all-after-3.0.2.tgz", @@ -17541,11 +14453,11 @@ } }, "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", "engines": { - "node": ">= 10.0.0" + "node": ">= 4.0.0" } }, "node_modules/unpipe": { @@ -17604,15 +14516,16 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "optional": true, "engines": { "node": ">=4", "yarn": "*" } }, "node_modules/update-browserslist-db": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", - "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", "funding": [ { "type": "opencollective", @@ -17653,12 +14566,12 @@ "deprecated": "Please see https://github.com/lydell/urix#deprecated" }, "node_modules/url": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.1.tgz", - "integrity": "sha512-rWS3H04/+mzzJkv0eZ7vEDGiQbgquI1fGfOad6zKvgYQi1SzMmhl7c/DdRGxhaWrVH6z0qWITo8rpnxK/RfEhA==", + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.3.tgz", + "integrity": "sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==", "dependencies": { "punycode": "^1.4.1", - "qs": "^6.11.0" + "qs": "^6.11.2" } }, "node_modules/url-parse": { @@ -17684,9 +14597,9 @@ } }, "node_modules/util": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", - "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", "dependencies": { "inherits": "2.0.3" } @@ -17719,9 +14632,9 @@ } }, "node_modules/v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==" + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz", + "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==" }, "node_modules/v8-to-istanbul": { "version": "7.1.2", @@ -17736,6 +14649,11 @@ "node": ">=10.10.0" } }, + "node_modules/v8-to-istanbul/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, "node_modules/v8-to-istanbul/node_modules/source-map": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", @@ -17744,17 +14662,6 @@ "node": ">= 8" } }, - "node_modules/v8flags": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", - "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", - "dependencies": { - "homedir-polyfill": "^1.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -17764,22 +14671,6 @@ "spdx-expression-parse": "^3.0.0" } }, - "node_modules/value-or-function": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", - "integrity": "sha512-jdBB2FrWvQC/pnPtIqcLsMaQgjhdb6B7tk1MMyTKapox+tQZbdRP4uLxu/JY0t7fbfDCUMnuelzEYv5GsxHhdg==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/vfile": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", @@ -17824,61 +14715,6 @@ "node": ">= 0.10" } }, - "node_modules/vinyl-fs": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", - "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", - "dependencies": { - "fs-mkdirp-stream": "^1.0.0", - "glob-stream": "^6.1.0", - "graceful-fs": "^4.0.0", - "is-valid-glob": "^1.0.0", - "lazystream": "^1.0.0", - "lead": "^1.0.0", - "object.assign": "^4.0.4", - "pumpify": "^1.3.5", - "readable-stream": "^2.3.3", - "remove-bom-buffer": "^3.0.0", - "remove-bom-stream": "^1.2.0", - "resolve-options": "^1.1.0", - "through2": "^2.0.0", - "to-through": "^2.0.0", - "value-or-function": "^3.0.0", - "vinyl": "^2.0.0", - "vinyl-sourcemap": "^1.1.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/vinyl-sourcemap": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", - "integrity": "sha512-NiibMgt6VJGJmyw7vtzhctDcfKch4e4n9TBeoWlirb7FMg9/1Ov9k+A5ZRAtywBpRPiyECvQRQllYM8dECegVA==", - "dependencies": { - "append-buffer": "^1.0.2", - "convert-source-map": "^1.5.0", - "graceful-fs": "^4.1.6", - "normalize-path": "^2.1.1", - "now-and-later": "^2.0.0", - "remove-bom-buffer": "^3.0.0", - "vinyl": "^2.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/vinyl-sourcemap/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/vinyl-sourcemaps-apply": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz", @@ -17947,9 +14783,9 @@ } }, "node_modules/wait-on/node_modules/tslib": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", - "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, "node_modules/walker": { "version": "1.0.8", @@ -17980,6 +14816,37 @@ "chokidar": "^2.1.8" } }, + "node_modules/watchpack-chokidar2/node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "optional": true, + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/watchpack-chokidar2/node_modules/anymatch/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "optional": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/watchpack-chokidar2/node_modules/binary-extensions": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", @@ -17989,6 +14856,39 @@ "node": ">=0.10.0" } }, + "node_modules/watchpack-chokidar2/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "optional": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "optional": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/watchpack-chokidar2/node_modules/chokidar": { "version": "2.1.8", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", @@ -18012,6 +14912,33 @@ "fsevents": "^1.2.7" } }, + "node_modules/watchpack-chokidar2/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "optional": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "optional": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/watchpack-chokidar2/node_modules/fsevents": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", @@ -18064,6 +14991,84 @@ "node": ">=0.10.0" } }, + "node_modules/watchpack-chokidar2/node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "optional": true + }, + "node_modules/watchpack-chokidar2/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "optional": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "optional": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "optional": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "optional": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, "node_modules/watchpack-chokidar2/node_modules/readdirp": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", @@ -18078,6 +15083,34 @@ "node": ">=0.10" } }, + "node_modules/watchpack-chokidar2/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "optional": true + }, + "node_modules/watchpack-chokidar2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "optional": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "optional": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/webidl-conversions": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", @@ -18087,18 +15120,18 @@ } }, "node_modules/webpack": { - "version": "5.88.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.88.2.tgz", - "integrity": "sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ==", + "version": "5.90.3", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.3.tgz", + "integrity": "sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA==", "dependencies": { "@types/eslint-scope": "^3.7.3", - "@types/estree": "^1.0.0", + "@types/estree": "^1.0.5", "@webassemblyjs/ast": "^1.11.5", "@webassemblyjs/wasm-edit": "^1.11.5", "@webassemblyjs/wasm-parser": "^1.11.5", "acorn": "^8.7.1", "acorn-import-assertions": "^1.9.0", - "browserslist": "^4.14.5", + "browserslist": "^4.21.10", "chrome-trace-event": "^1.0.2", "enhanced-resolve": "^5.15.0", "es-module-lexer": "^1.2.1", @@ -18112,7 +15145,7 @@ "neo-async": "^2.6.2", "schema-utils": "^3.2.0", "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.7", + "terser-webpack-plugin": "^5.3.10", "watchpack": "^2.4.0", "webpack-sources": "^3.2.3" }, @@ -18299,6 +15332,14 @@ "node": ">=0.10.0" } }, + "node_modules/webpack-stream/node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/webpack-stream/node_modules/arr-union": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", @@ -18307,6 +15348,37 @@ "node": ">=0.10.0" } }, + "node_modules/webpack-stream/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-stream/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/webpack-stream/node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", @@ -18349,13 +15421,26 @@ "node": ">=4.0.0" } }, - "node_modules/webpack-stream/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "node_modules/webpack-stream/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-stream/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dependencies": { + "is-extendable": "^0.1.0" }, "engines": { "node": ">=0.10.0" @@ -18385,23 +15470,36 @@ "node": ">=6" } }, + "node_modules/webpack-stream/node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, "node_modules/webpack-stream/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-stream/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", "dependencies": { - "is-plain-object": "^2.0.4" + "kind-of": "^3.0.2" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/webpack-stream/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "node_modules/webpack-stream/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dependencies": { - "isobject": "^3.0.1" + "is-buffer": "^1.1.5" }, "engines": { "node": ">=0.10.0" @@ -18471,6 +15569,29 @@ "node": ">=6" } }, + "node_modules/webpack-stream/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/webpack-stream/node_modules/p-locate": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", @@ -18490,14 +15611,6 @@ "node": ">=4" } }, - "node_modules/webpack-stream/node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "engines": { - "node": ">=6" - } - }, "node_modules/webpack-stream/node_modules/pkg-dir": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", @@ -18523,6 +15636,25 @@ "node": ">= 0.10" } }, + "node_modules/webpack-stream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/webpack-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, "node_modules/webpack-stream/node_modules/schema-utils": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", @@ -18552,6 +15684,14 @@ "randombytes": "^2.1.0" } }, + "node_modules/webpack-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/webpack-stream/node_modules/tapable": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", @@ -18598,6 +15738,18 @@ "webpack": "^4.0.0" } }, + "node_modules/webpack-stream/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/webpack-stream/node_modules/watchpack": { "version": "1.7.5", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", @@ -18612,9 +15764,9 @@ } }, "node_modules/webpack-stream/node_modules/webpack": { - "version": "4.46.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz", - "integrity": "sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==", + "version": "4.47.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.47.0.tgz", + "integrity": "sha512-td7fYwgLSrky3fI1EuU5cneU4+pbH6GgOfuKNS1tNPcfdGinGELAqsb/BP4nnvZyKSG2i/xFGU7+n2PvZA8HJQ==", "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-module-context": "1.9.0", @@ -18669,9 +15821,9 @@ } }, "node_modules/webpack/node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", "bin": { "acorn": "bin/acorn" }, @@ -18766,9 +15918,9 @@ } }, "node_modules/which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==" }, "node_modules/which-pm-runs": { "version": "1.1.0", @@ -18878,14 +16030,6 @@ "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" }, - "node_modules/xmlbuilder": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", - "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", - "engines": { - "node": ">=8.0" - } - }, "node_modules/xmlchars": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", @@ -18945,15 +16089,6 @@ "node": ">=10" } }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, "node_modules/yazl": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/yazl/-/yazl-2.5.1.tgz", diff --git a/src/Dfe.PlanTech.Web.Node/package.json b/src/Dfe.PlanTech.Web.Node/package.json index 766a19d4c..e87f931b4 100644 --- a/src/Dfe.PlanTech.Web.Node/package.json +++ b/src/Dfe.PlanTech.Web.Node/package.json @@ -11,11 +11,12 @@ "author": "", "license": "ISC", "dependencies": { - "dfe-frontend-alpha": "^0.1.8", + "@govuk-prototype-kit/step-by-step": "^2.2.2", + "dfe-frontend-alpha": "^1.0.1", "esbuild": "0.18.17", "esbuild-sass-plugin": "^2.10.0", "fs": "^0.0.1-security", - "govuk-frontend": "^4.7.0", + "govuk-frontend": "^5.1.0", "sass": "^1.64.1" } } diff --git a/src/Dfe.PlanTech.Web.Node/styles/scss/app-task-list.scss b/src/Dfe.PlanTech.Web.Node/styles/scss/app-task-list.scss index 42c18771c..e2079a4c9 100644 --- a/src/Dfe.PlanTech.Web.Node/styles/scss/app-task-list.scss +++ b/src/Dfe.PlanTech.Web.Node/styles/scss/app-task-list.scss @@ -11,6 +11,10 @@ } } +.app-task-list__items { + width: 44em; +} + .app-task-list__section { display: table; font-family: "GDS Transport", arial, sans-serif; @@ -135,7 +139,6 @@ } @media (min-width: 28.125em) { - .app-task-list__tag, .app-task-list__task-completed { float: right; @@ -145,7 +148,7 @@ } #checkYourAnswers-page .spacer { - content: ' ' !important; + content: " " !important; display: block !important; } @@ -171,4 +174,4 @@ #checkYourAnswers-page .govuk-heading-xl { font-size: 2.5rem; margin-bottom: 25px; -} \ No newline at end of file +} diff --git a/src/Dfe.PlanTech.Web.Node/styles/scss/application.scss b/src/Dfe.PlanTech.Web.Node/styles/scss/application.scss index f4c965f0f..d372f8c14 100644 --- a/src/Dfe.PlanTech.Web.Node/styles/scss/application.scss +++ b/src/Dfe.PlanTech.Web.Node/styles/scss/application.scss @@ -1,8 +1,10 @@ -//@use "sass:map"; -$govuk-global-styles: true; -$govuk-new-link-styles: true; +@use "../../node_modules/govuk-frontend/dist/govuk/all.scss"; +@use "../../node_modules/dfe-frontend-alpha/packages/dfefrontend.scss"; -@use "../../node_modules/govuk-frontend/govuk/all"; -@use "../../node_modules/dfe-frontend-alpha/packages/dfefrontend"; +@import "app-task-list"; +@import "aside"; +@import "card-component"; +@import "error-message"; +@import "govuk-header"; +@import "hero-banner"; @import "overrides"; -@import "app-task-list"; \ No newline at end of file diff --git a/src/Dfe.PlanTech.Web.Node/styles/scss/aside.scss b/src/Dfe.PlanTech.Web.Node/styles/scss/aside.scss new file mode 100644 index 000000000..3bcb33838 --- /dev/null +++ b/src/Dfe.PlanTech.Web.Node/styles/scss/aside.scss @@ -0,0 +1,10 @@ +/* ASIDE COMPONENT - NEW +--------------------------- */ +.app-related-items { + border-top: 2px solid #347ca9; + padding-top: 10px; +} + +.app-related-items .govuk-list > li { + margin-bottom: 10px; +} diff --git a/src/Dfe.PlanTech.Web.Node/styles/scss/card-component.scss b/src/Dfe.PlanTech.Web.Node/styles/scss/card-component.scss new file mode 100644 index 000000000..698e93026 --- /dev/null +++ b/src/Dfe.PlanTech.Web.Node/styles/scss/card-component.scss @@ -0,0 +1,20 @@ +/* DFE CARD COMPONENT - NEW +--------------------------- */ +.dfe-section-card { + padding: 16px; + margin-bottom: 20px; + flex: 1; + background-color: #f3f2f1; +} + +.dfe-section-card__container { + display: flex; + width: 100; +} + +@media (max-width: 40.0525em) { + .dfe-section-card__container { + display: grid; + width: 100; + } +} diff --git a/src/Dfe.PlanTech.Web.Node/styles/scss/error-message.scss b/src/Dfe.PlanTech.Web.Node/styles/scss/error-message.scss new file mode 100644 index 000000000..1d507e176 --- /dev/null +++ b/src/Dfe.PlanTech.Web.Node/styles/scss/error-message.scss @@ -0,0 +1,36 @@ +/* OVERRIDE GOVUK ERROR MESSAGE FOR INLINE ERRORS IN TASK LIST +----------------------------------------------- */ +strong.app-task-list__task-name > p.govuk-error-message { + margin-bottom: 0px; +} + +rich-text > p.govuk-body { + margin-top: 15px; + margin-bottom: 15px; +} + +@media (min-width: 40.0625em) { + .govuk-body, + .govuk-body-m { + margin-bottom: 10px; + } + + h2, + .dfe-heading-l, + .govuk-heading-l { + margin-top: 45px; + } + + h3, + .dfe-heading-s, + .govuk-heading-s, + .dfe-headin-m { + padding-top: 10px; + margin-top: 35px; + } + + rich-text > p.govuk-body { + margin-top: 20px; + margin-bottom: 20px; + } +} diff --git a/src/Dfe.PlanTech.Web.Node/styles/scss/govuk-header.scss b/src/Dfe.PlanTech.Web.Node/styles/scss/govuk-header.scss new file mode 100644 index 000000000..979453525 --- /dev/null +++ b/src/Dfe.PlanTech.Web.Node/styles/scss/govuk-header.scss @@ -0,0 +1,72 @@ +/* DFE HEADER - CODE FROM DFE DESIGN GUIDE AND WITH EDITS --------------------------------------------------------- */ +.govuk-header { + background-color: #003a69; +} + +.govuk-header__container { + position: relative; + margin-bottom: -10px; + padding-top: 25px; + padding-bottom: 15px; + border-bottom: 10px solid #347ca9; +} + +.govuk-header__product-name, +.govuk-header__logotype-text { + line-height: 2.5rem !important; + font-size: 1.2rem; +} + +.app-header .govuk-header__logo { + width: 85%; +} + +.app-header .govuk-header__content { + width: 0; +} + +.govuk-header__logotype-crown-fallback-image { + height: 45px; + width: 45px; +} + +.govuk-header__logotype-text::after { + content: "|"; +} + +.govuk-header__logotype { + margin-right: 0; +} + +.govuk-header__navigation-item--active a:link, +.govuk-header__navigation-item--active a:hover, +.govuk-header__navigation-item--active a:visited { + color: #f3f2f1; + text-decoration: underline; + text-decoration-thickness: 3px; + text-underline-offset: 0.1em; +} + +.edf-hero-banner { + margin-top: -10px !important; + margin-bottom: 40px; +} + +@media (max-width: 40.0625em) { + .govuk-header__product-name { + max-width: 80%; + line-height: 1.2rem !important; + font-size: 1rem; + } + + .govuk-header__logotype-text { + min-width: 100%; + line-height: 2.2rem !important; + font-size: 1rem; + } + + .edf-hero-banner { + margin-top: 0px !important; + margin-bottom: 20px; + } +} diff --git a/src/Dfe.PlanTech.Web.Node/styles/scss/hero-banner.scss b/src/Dfe.PlanTech.Web.Node/styles/scss/hero-banner.scss new file mode 100644 index 000000000..4e936ba67 --- /dev/null +++ b/src/Dfe.PlanTech.Web.Node/styles/scss/hero-banner.scss @@ -0,0 +1,12 @@ +/* HOMEPAGE HERO BANNER ----------------------- */ +.app-section-beta { + padding: 30px 0; +} + +.app-section-beta__blue { + background-color: #347ca9; +} + +.body-header-font { + color: white; +} diff --git a/src/Dfe.PlanTech.Web.Node/styles/scss/overrides.scss b/src/Dfe.PlanTech.Web.Node/styles/scss/overrides.scss index 3eef386fa..58f6ec537 100644 --- a/src/Dfe.PlanTech.Web.Node/styles/scss/overrides.scss +++ b/src/Dfe.PlanTech.Web.Node/styles/scss/overrides.scss @@ -1,6 +1,8 @@ -/* STANDARD COLOURS */ +@use "../../node_modules/dfe-frontend-alpha/packages/dfefrontend.scss"; + * { - font-family: BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif !important; + font-family: BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, + Cantarell, "Helvetica Neue", sans-serif !important; } .logo { @@ -10,174 +12,33 @@ } .govuk-table { - margin-top: 30px; - margin-bottom: 30px; -} - -@media (min-width: 40.0625em) { - .govuk-button--start { - margin-bottom: 0 !important; - } + margin-top: 30px; + margin-bottom: 30px; } a.govuk-home-link { - position: relative; - display: inline-block; - margin-top: 15px; - margin-bottom: 15px; -} - -/* DFE CARD COMPONENT - NEW ---------------------------- */ -.dfe-section-card { - padding: 16px; - margin-bottom: 20px; - flex: 1; - background-color: #f3f2f1; -} - -.dfe-section-card__container { - display: flex; - width: 100; -} - -@media (max-width: 40.0525em) { - .dfe-section-card__container { - display: grid; - width: 100; - } -} - -/* ASIDE COMPONENT - NEW ---------------------------- */ -.app-related-items { - border-top: 2px solid #347ca9; - padding-top: 10px; -} - -.app-related-items .govuk-list > li { - margin-bottom: 10px; -} - -/* HOMEPAGE HERO BANNER ----------------------- */ -.app-section-beta { - padding: 30px 0; -} - -.app-section-beta__blue { - background-color: #347ca9; -} - -.body-header-font { - color: white; -} - -/* DFE HEADER - CODE FROM DFE DESIGN GUIDE AND WITH EDITS --------------------------------------------------------- */ -.govuk-header { - background-color: #003a69; -} - -.govuk-header__container { position: relative; - margin-bottom: -10px; - padding-top: 25px; - padding-bottom: 15px; - border-bottom: 10px solid #347ca9; -} - -.govuk-header__product-name, -.govuk-header__logotype-text { - line-height: 2.5rem !important; - font-size: 1.2rem; -} - -.app-header .govuk-header__logo { - width: 85%; -} - -.app-header .govuk-header__content { - width: 0; -} - -.govuk-header__logotype-crown-fallback-image { - height: 45px; - width: 45px; -} - -.govuk-header__logotype-text::after { - content: "|"; -} - -.govuk-header__logotype { - margin-right: 0; -} - -.govuk-header__navigation-item--active a:link, -.govuk-header__navigation-item--active a:hover, -.govuk-header__navigation-item--active a:visited { - color: #f3f2f1; - text-decoration: underline; - text-decoration-thickness: 3px; - text-underline-offset: 0.1em; -} - -.edf-hero-banner { - margin-top: -10px !important; - margin-bottom: 40px; -} - -@media (max-width: 40.0625em) { - .govuk-header__product-name { - max-width: 80%; - line-height: 1.2rem !important; - font-size: 1rem; - } - - .govuk-header__logotype-text { - min-width: 100%; - line-height: 2.2rem !important; - font-size: 1rem; - } - - .edf-hero-banner { - margin-top: 0px !important; - margin-bottom: 20px; - } -} - -/* OVERRIDE GOVUK ERROR MESSAGE FOR INLINE ERRORS IN TASK LIST ------------------------------------------------ */ -strong.app-task-list__task-name > p.govuk-error-message { - margin-bottom: 0px; -} - -rich-text > p.govuk-body { + display: inline-block; margin-top: 15px; margin-bottom: 15px; } -@media (min-width: 40.0625em) { - .govuk-body, - .govuk-body-m { - margin-bottom: 10px; +//Remove the padding from paragraphs within lists +li { + p.govuk-body { + margin-top: 0px; + margin-bottom: 0px; } +} - h2, - .dfe-heading-l, - .govuk-heading-l { - margin-top: 45px; - } +div.govuk-width-container { + @extend .dfe-width-container; +} - h3, - .dfe-heading-s, - .govuk-heading-s, - .dfe-headin-m { - padding-top: 10px; - margin-top: 35px; - } +strong.govuk-tag { + text-transform: lowercase; - rich-text > p.govuk-body { - margin-top: 20px; - margin-bottom: 20px; + &:first-letter { + text-transform: uppercase; } } diff --git a/src/Dfe.PlanTech.Web.Node/styles/scss/step-by-step.scss b/src/Dfe.PlanTech.Web.Node/styles/scss/step-by-step.scss new file mode 100644 index 000000000..35c91be7e --- /dev/null +++ b/src/Dfe.PlanTech.Web.Node/styles/scss/step-by-step.scss @@ -0,0 +1,6 @@ +@import "../../node_modules/govuk-frontend/dist/govuk/all.scss"; + +//Step-by-step navigation pattern. See https://design-system.service.gov.uk/patterns/step-by-step-navigation/ +@import "../../node_modules/@govuk-prototype-kit/step-by-step/sass/_step-by-step-navigation.scss"; +@import "../../node_modules/@govuk-prototype-kit/step-by-step/sass/_step-by-step-navigation-related.scss"; +@import "../../node_modules/@govuk-prototype-kit/step-by-step/sass/_step-by-step-navigation-header.scss"; diff --git a/src/Dfe.PlanTech.Web/Dfe.PlanTech.Web.csproj b/src/Dfe.PlanTech.Web/Dfe.PlanTech.Web.csproj index 45631ddc8..5e30cd206 100644 --- a/src/Dfe.PlanTech.Web/Dfe.PlanTech.Web.csproj +++ b/src/Dfe.PlanTech.Web/Dfe.PlanTech.Web.csproj @@ -16,30 +16,24 @@ - - - + + + - - - + + + - - + + - - - - + + + + - + diff --git a/src/Dfe.PlanTech.Web/Helpers/RouteDataExtensions.cs b/src/Dfe.PlanTech.Web/Helpers/RouteDataExtensions.cs index f655a4d7a..c93de13b8 100644 --- a/src/Dfe.PlanTech.Web/Helpers/RouteDataExtensions.cs +++ b/src/Dfe.PlanTech.Web/Helpers/RouteDataExtensions.cs @@ -12,8 +12,7 @@ public static class RouteDataExtensions // DefaultPageTitle. public static string GetTitleForPage(this RouteData routeData) { - var sectionSlug = routeData.Values.OrderByDescending(routePart => routePart.Key) - .Where(routePart => + var sectionSlug = routeData.Values.Where(routePart => { if (routePart.Key == SectionSlugKey) { @@ -25,6 +24,7 @@ public static string GetTitleForPage(this RouteData routeData) return !string.IsNullOrEmpty(routePartValue) && routePartValue != "/" && !routePartValue.Any(char.IsNumber); }) + .OrderByDescending(routePart => routePart.Key) .Select(routePart => routePart.Value!.ToString()) .FirstOrDefault(); diff --git a/src/Dfe.PlanTech.Web/Models/PageViewModel.cs b/src/Dfe.PlanTech.Web/Models/PageViewModel.cs index af9ba3454..db6db4b9a 100644 --- a/src/Dfe.PlanTech.Web/Models/PageViewModel.cs +++ b/src/Dfe.PlanTech.Web/Models/PageViewModel.cs @@ -6,7 +6,7 @@ namespace Dfe.PlanTech.Web.Models; public class PageViewModel { - public Page Page { get; init; } = null!; + public Page Page { get; init; } public PageViewModel(Page page, Controller controller, IUser user, ILogger logger) { diff --git a/src/Dfe.PlanTech.Web/ProgramExtensions.cs b/src/Dfe.PlanTech.Web/ProgramExtensions.cs index 15769c7de..d83ead493 100644 --- a/src/Dfe.PlanTech.Web/ProgramExtensions.cs +++ b/src/Dfe.PlanTech.Web/ProgramExtensions.cs @@ -107,7 +107,7 @@ public static IServiceCollection AddCaching(this IServiceCollection services) public static IServiceCollection AddDatabase(this IServiceCollection services, IConfiguration configuration) { - var serviceProvider = services.BuildServiceProvider(); + IServiceProvider serviceProvider = services.BuildServiceProvider(); void databaseOptionsAction(DbContextOptionsBuilder options) => options.UseSqlServer(configuration.GetConnectionString("Database")); diff --git a/src/Dfe.PlanTech.Web/TagHelpers/TaskList/TagColour.cs b/src/Dfe.PlanTech.Web/TagHelpers/TaskList/TagColour.cs index c0b87bd3c..39a0c0677 100644 --- a/src/Dfe.PlanTech.Web/TagHelpers/TaskList/TagColour.cs +++ b/src/Dfe.PlanTech.Web/TagHelpers/TaskList/TagColour.cs @@ -1,10 +1,17 @@ namespace Dfe.PlanTech.Web.TagHelpers.TaskList; -public enum TagColour +public static class TagColour { - Default, - Blue, - Grey, - Red, - DarkBlue, + public readonly static string Default = "blue"; + public readonly static string Blue = "blue"; + public readonly static string Grey = "grey"; + public readonly static string LightBlue = "light-blue"; + public readonly static string Red = "red"; + + private readonly static string[] _colours = [Blue, Grey, LightBlue, Red]; + + public static string GetMatchingColour(string? toMatch) + => string.IsNullOrEmpty(toMatch) ? + Default : + _colours.FirstOrDefault(colour => string.Equals(colour, toMatch, StringComparison.InvariantCultureIgnoreCase), Default); } \ No newline at end of file diff --git a/src/Dfe.PlanTech.Web/TagHelpers/TaskList/TaskListTagTagHelper.cs b/src/Dfe.PlanTech.Web/TagHelpers/TaskList/TaskListTagTagHelper.cs index 59fc13cee..be0dedf98 100644 --- a/src/Dfe.PlanTech.Web/TagHelpers/TaskList/TaskListTagTagHelper.cs +++ b/src/Dfe.PlanTech.Web/TagHelpers/TaskList/TaskListTagTagHelper.cs @@ -16,7 +16,7 @@ public TaskListTagTagHelper() TagName = "strong"; } - protected TagColour TagColour => Enum.TryParse(Colour, true, out TagColour colour) ? colour : TagColour.Default; + protected string TagClassColour => TagColour.GetMatchingColour(Colour); protected override string CreateClassesAttribute() { @@ -40,13 +40,12 @@ private void AppendExtraClasses(StringBuilder stringBuilder) private void AppendTagColour(StringBuilder stringBuilder) { - var tagColour = TagColour; - if (tagColour != TagColour.Default) + if (TagClassColour != TagColour.Default) { stringBuilder.Append(' '); stringBuilder.Append(_class); stringBuilder.Append("--"); - stringBuilder.Append(tagColour.ToString().ToLower()); + stringBuilder.Append(TagClassColour); } } diff --git a/src/Dfe.PlanTech.Web/TagHelpers/WarningComponentTagHelper.cs b/src/Dfe.PlanTech.Web/TagHelpers/WarningComponentTagHelper.cs index 0d62aa904..dd5d92147 100644 --- a/src/Dfe.PlanTech.Web/TagHelpers/WarningComponentTagHelper.cs +++ b/src/Dfe.PlanTech.Web/TagHelpers/WarningComponentTagHelper.cs @@ -7,7 +7,7 @@ public class WarningComponentTagHelper : TagHelper public const string OpeningDiv = """
"""; public const string WarningIcon = """"""; public const string OpeningSpan = """"""; - public const string AssistiveText = """Warning"""; + public const string AssistiveText = """Warning"""; public WarningComponentTagHelper() { diff --git a/src/Dfe.PlanTech.Web/ViewComponents/AccordionViewComponent.cs b/src/Dfe.PlanTech.Web/ViewComponents/AccordionViewComponent.cs new file mode 100644 index 000000000..2551d9cf1 --- /dev/null +++ b/src/Dfe.PlanTech.Web/ViewComponents/AccordionViewComponent.cs @@ -0,0 +1,12 @@ +using Dfe.PlanTech.Domain.Content.Interfaces; +using Microsoft.AspNetCore.Mvc; + +namespace Dfe.PlanTech.Web.ViewComponents; + +public class AccordionViewComponent : ViewComponent +{ + public IViewComponentResult Invoke(IEnumerable accordionBlock) + { + return View(accordionBlock); + } +} \ No newline at end of file diff --git a/src/Dfe.PlanTech.Web/ViewComponents/CategorySectionViewComponent.cs b/src/Dfe.PlanTech.Web/ViewComponents/CategorySectionViewComponent.cs index 57dd26d66..5218c6c34 100644 --- a/src/Dfe.PlanTech.Web/ViewComponents/CategorySectionViewComponent.cs +++ b/src/Dfe.PlanTech.Web/ViewComponents/CategorySectionViewComponent.cs @@ -7,26 +7,19 @@ namespace Dfe.PlanTech.Web.ViewComponents; -public class CategorySectionViewComponent : ViewComponent +public class CategorySectionViewComponent(ILogger logger, IGetSubmissionStatusesQuery query) : ViewComponent { - private readonly ILogger _logger; - private readonly IGetSubmissionStatusesQuery _query; + private readonly ILogger _logger = logger; + private readonly IGetSubmissionStatusesQuery _query = query; - - public CategorySectionViewComponent(ILogger logger, IGetSubmissionStatusesQuery query) - { - _logger = logger; - _query = query; - } - - public IViewComponentResult Invoke(Category category) + public async Task InvokeAsync(Category category) { - var viewModel = GenerateViewModel(category); + var viewModel = await GenerateViewModel(category); return View(viewModel); } - private CategorySectionViewComponentViewModel GenerateViewModel(Category category) + private async Task GenerateViewModel(Category category) { bool sectionsExist = category.Sections?.Count > 0; @@ -40,7 +33,7 @@ private CategorySectionViewComponentViewModel GenerateViewModel(Category categor }; } - category = RetrieveSectionStatuses(category); + category = await RetrieveSectionStatuses(category); return new CategorySectionViewComponentViewModel() { @@ -70,7 +63,7 @@ private static void SetCategorySectionDtoTagWithCurrentStatus(Category category, if (sectionStatusCompleted != null) { - categorySectionDto.TagColour = sectionStatusCompleted == 1 ? TagColour.DarkBlue.ToString() : TagColour.Blue.ToString(); + categorySectionDto.TagColour = sectionStatusCompleted == 1 ? TagColour.Blue : TagColour.LightBlue; categorySectionDto.TagText = sectionStatusCompleted == 1 ? "COMPLETE" : "IN PROGRESS"; } else @@ -98,11 +91,11 @@ private IEnumerable GetCategorySectionViewComponentViewModel } } - public Category RetrieveSectionStatuses(Category category) + public async Task RetrieveSectionStatuses(Category category) { try { - category.SectionStatuses = _query.GetSectionSubmissionStatuses(category.Sections).ToList(); + category.SectionStatuses = await _query.GetSectionSubmissionStatuses(category.Sections); category.Completed = category.SectionStatuses.Count(x => x.Completed == 1); category.RetrievalError = false; return category; diff --git a/src/Dfe.PlanTech.Web/ViewComponents/RecommendationsViewComponent.cs b/src/Dfe.PlanTech.Web/ViewComponents/RecommendationsViewComponent.cs index 39b39ef5a..461174556 100644 --- a/src/Dfe.PlanTech.Web/ViewComponents/RecommendationsViewComponent.cs +++ b/src/Dfe.PlanTech.Web/ViewComponents/RecommendationsViewComponent.cs @@ -6,19 +6,13 @@ namespace Dfe.PlanTech.Web.ViewComponents; -public class RecommendationsViewComponent : ViewComponent +public class RecommendationsViewComponent(ILogger logger, + IGetSubmissionStatusesQuery query) : ViewComponent { - private readonly ILogger _logger; - private readonly IGetSubmissionStatusesQuery _query; + private readonly ILogger _logger = logger; + private readonly IGetSubmissionStatusesQuery _query = query; - public RecommendationsViewComponent(ILogger logger, - IGetSubmissionStatusesQuery query) - { - _logger = logger; - _query = query; - } - - public IViewComponentResult Invoke(IEnumerable categories) + public async Task InvokeAsync(IEnumerable categories) { var allSectionsOfCombinedCategories = new List(); var allSectionStatusesOfCombinedCategories = new List(); @@ -31,7 +25,7 @@ public IViewComponentResult Invoke(IEnumerable categories) recommendationsAvailable = true; } - var categoryElement = RetrieveSectionStatuses(category); + var categoryElement = await RetrieveSectionStatuses(category); allSectionsOfCombinedCategories.AddRange(categoryElement.Sections); allSectionStatusesOfCombinedCategories.AddRange(categoryElement.SectionStatuses); } @@ -75,11 +69,11 @@ private IEnumerable GetRecommendationsVie } } - public ICategoryComponent RetrieveSectionStatuses(ICategoryComponent category) + public async Task RetrieveSectionStatuses(ICategoryComponent category) { try { - category.SectionStatuses = _query.GetSectionSubmissionStatuses(category.Sections); + category.SectionStatuses = await _query.GetSectionSubmissionStatuses(category.Sections); category.Completed = category.SectionStatuses.Count(x => x.Completed == 1); category.RetrievalError = false; diff --git a/src/Dfe.PlanTech.Web/Views/Shared/Components/Accordion/Default.cshtml b/src/Dfe.PlanTech.Web/Views/Shared/Components/Accordion/Default.cshtml new file mode 100644 index 000000000..f2741b3fc --- /dev/null +++ b/src/Dfe.PlanTech.Web/Views/Shared/Components/Accordion/Default.cshtml @@ -0,0 +1,41 @@ +@model IEnumerable + + \ No newline at end of file diff --git a/src/Dfe.PlanTech.Web/Views/Shared/Components/Page.cshtml b/src/Dfe.PlanTech.Web/Views/Shared/Components/Page.cshtml index f70f94ddb..bfcfb5d92 100644 --- a/src/Dfe.PlanTech.Web/Views/Shared/Components/Page.cshtml +++ b/src/Dfe.PlanTech.Web/Views/Shared/Components/Page.cshtml @@ -2,42 +2,39 @@ @model Dfe.PlanTech.Domain.Content.Models.Page; -
-
- @{ - foreach (var content in Model.BeforeTitleContent) - { - await Html.RenderPartialAsync("Components/PageComponentFactory", content); - } - - if (Model.DisplayTopicTitle) - { - @Model.SectionTitle - } - - if (Model.Title != null) - { - await Html.RenderPartialAsync("Components/Title", Model.Title); - } - - var categoriesList = new List(); - - var showRecommendations = false; - - foreach (var content in Model.Content) - { - await Html.RenderPartialAsync("Components/PageComponentFactory", content); - - if (content is ICategoryComponent category) - { - showRecommendations = true; - categoriesList.Add(category); - } - } - if (showRecommendations) - { - @await Component.InvokeAsync("Recommendations", new { categories = categoriesList.ToArray() }) - } +@{ + foreach (var content in Model.BeforeTitleContent) + { + await Html.RenderPartialAsync("Components/PageComponentFactory", content); + } + + if (Model.DisplayTopicTitle) + { + @Model.SectionTitle + } + + if (Model.Title != null) + { + await Html.RenderPartialAsync("Components/Title", Model.Title); + } + + var categoriesList = new List(); + + var showRecommendations = false; + + foreach (var content in Model.Content) + { + await Html.RenderPartialAsync("Components/PageComponentFactory", content); + + if (content is ICategoryComponent category) + { + showRecommendations = true; + categoriesList.Add(category); } -
-
\ No newline at end of file + } + + if (showRecommendations) + { + @await Component.InvokeAsync("Recommendations", new { categories = categoriesList.ToArray() }) + } +} \ No newline at end of file diff --git a/src/Dfe.PlanTech.Web/Views/Shared/_Layout.cshtml b/src/Dfe.PlanTech.Web/Views/Shared/_Layout.cshtml index ea3059f0b..f83dd0bb3 100644 --- a/src/Dfe.PlanTech.Web/Views/Shared/_Layout.cshtml +++ b/src/Dfe.PlanTech.Web/Views/Shared/_Layout.cshtml @@ -3,11 +3,14 @@ @using Dfe.PlanTech.Web.Helpers; @using System.Globalization; + @section Head { - @Html.Raw(GtmConfiguration.Analytics) - @Html.Raw(GtmConfiguration.Head) - @RenderSection("Head", false) + + + @Html.Raw(GtmConfiguration.Analytics) + @Html.Raw(GtmConfiguration.Head) + @RenderSection("Head", false) } @{ @@ -28,18 +31,23 @@ await Html.RenderPartialAsync("_Header"); } -@RenderSection("Header", false) + @RenderSection("Header", false) } @section BeforeContent { @{ await Html.RenderPartialAsync("BetaHeader"); } -@RenderSection("BeforeContent", required: false) + @RenderSection("BeforeContent", required: false) + + @{ + //Add relevant tags for GovUK front-end CSS to body + } + } -@RenderBody() +@RenderBody() @section Footer { @{ await Html.RenderPartialAsync("_Footer"); @@ -48,4 +56,11 @@ @section BodyEnd { -} \ No newline at end of file + + + +} diff --git a/src/Dfe.PlanTech.Web/wwwroot/assets/images/favicon.svg b/src/Dfe.PlanTech.Web/wwwroot/assets/images/favicon.svg new file mode 100644 index 000000000..67d7ef919 --- /dev/null +++ b/src/Dfe.PlanTech.Web/wwwroot/assets/images/favicon.svg @@ -0,0 +1 @@ + diff --git a/src/Dfe.PlanTech.Web/wwwroot/assets/images/govuk-icon-180.png b/src/Dfe.PlanTech.Web/wwwroot/assets/images/govuk-icon-180.png new file mode 100644 index 0000000000000000000000000000000000000000..7c33beba86ee3e6e00cd1183ef428a38fcc19d50 GIT binary patch literal 1605 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

TXeB3b14L&4X^`-=Mi!@+a!SDbn2T>pG0W zdLF60&z&mU<~s5V6$MwvMLV#3pm*8(YehugC(a~^TEb(FY3mw|9%%IrjTaB{H-3N? z&W%Q@ChcU}4G)q5!{KD6d(_QSeLw2*vorbICs4zyr$dtE3-P~Yuj903b7$phV{(pf zDm%Zt>QPHe>&lPu1a=2SvMG2MM<@@sVlAT6h3mv){EK*qw7^Kam=+0E0mX38;~)AJLf;La!V1wO*> zjPSKTc9&L?Jp7JHpyikMfjM&TTeKYOS#W$rfNLL|Fqd--#@CdEO{;eoWpK-kUt*-;Sa_bf?LiN z+!2*e2QsI(CgKTus-wJX0|CHC>pMG>J8y&sI;x2^+1Y;|0Ny%xU5DvJubMD}tYEyw z@hgc|&aCK}SYOGjHSm#sCO6xs) zPum%#5I{3@J^Y2He6As|;zEhFoP9tBz~uY@^%W<8APk}BQiqY?m9AWEpcHxTS?YG| z2y(3K!x#w>t@d#vgUx6bQb7_FFmH%u6OE=^{;m~)B{px4N<-c?Xl~Mk*)}Yom25|b+@`g#dEt30jce&#m zN~7T9V^6zEgCEr$1f}`B?~NX{Cd*e3h61i+aP>dbWDO5yJ4dU|p02qxd@y*(6b>K` z*jiFG%>~#ZY5S(X{mt$L_Bl4z{0Cz! z@o$&Tzi=7eS5>BDbRLegYV4>s)^mTCT@H55vmN(1BL=GQAWCIb!rX%k$*y zOB7v_4kS{r_{M?)^-xnmC&R0x1Lu(kx~9>X-NvR~)$)<@Dqf>u{k3s|8Z)$CS85Ag zD`V5N>?c^{7ABFmWn^CXoMJUZh{RDzaAl|5_CrhN>6ybVBg2{Hara+OZDzS!M#JD* zzb6zz>>@@p6Z?kRrwUt-zWh{AEe(>Q`}!Qv=qKN?#kEoW6wgSynozNvlJ8xOU#F7W zY4|;O-Tcz3vjANYloE6cR-e~OZy=v$5@I1^XCOU5#&W||p7C&6)~%$iY2WMkuKD7~ zjrCm;wVJ1v|K1n>bz?hqyQkW^_T*62-}Xwq9o9RI{^--abI-1lR{aw$ivHy#uUdO_ z4^hR&`mMZ6_=lv`h~Pdd_Bg=Gx7ZClo5BA`t&+**;#gp2>Hd+p&{xbKP78voMZezU zUH66%ecIg8HDCO8qxuZ@pjb7V3_U^0GvIY~DHVdDVwt6^`<@xk9b*fKW#uX%iuA#d z-XW*x2x;rZFn}Ih0SZvt$rBER3k_ATZWk{*deL1PKiMxtE zyI_Nt^bjy2Z{veIaj1RwqQ$K9+0aS(I(5fx;+p~5- zXM73ka8R|_CbM=vYFDafZELI)Pz#FDH>3SMh4UiJ@Wny4x62v**D0v!&w3~izqnNR8PFWrxV|$4uX8sEXEf{Qq$Q$Ql^xSVspP#T@ClXd`@qI{#h&)6b@vj_)??#1C9?0 obcX@|1nXZ4ND%su{y)Odf{%j?^_}Uu&Hh`Xsj90|u8ax$AD;Y-$N&HU literal 0 HcmV?d00001 diff --git a/src/Dfe.PlanTech.Web/wwwroot/assets/images/govuk-icon-mask.svg b/src/Dfe.PlanTech.Web/wwwroot/assets/images/govuk-icon-mask.svg new file mode 100644 index 000000000..e10ff6cc3 --- /dev/null +++ b/src/Dfe.PlanTech.Web/wwwroot/assets/images/govuk-icon-mask.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/Dfe.PlanTech.Web/wwwroot/assets/images/govuk-opengraph-image.png b/src/Dfe.PlanTech.Web/wwwroot/assets/images/govuk-opengraph-image.png index 355284fbf6a87a1288920ee3c66c1bad9f8c9a40..4d0e312ffbcdf40193e029a094bc2e3c9af55bcd 100644 GIT binary patch literal 8677 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 literal 15380 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 F{}(>uVqyRQ diff --git a/src/Dfe.PlanTech.Web/wwwroot/css/application.css b/src/Dfe.PlanTech.Web/wwwroot/css/application.css index 32ea444f9..ee8f9b6a5 100644 --- a/src/Dfe.PlanTech.Web/wwwroot/css/application.css +++ b/src/Dfe.PlanTech.Web/wwwroot/css/application.css @@ -1,3 +1,3 @@ -@charset "UTF-8";:root{--govuk-frontend-version: "4.7.0"}.govuk-link{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:underline}@font-face{font-family:GDS Transport;font-style:normal;font-weight:400;src:url(/assets/fonts/light-94a07e06a1-v2.woff2) format("woff2"),url(/assets/fonts/light-f591b13f7d-v2.woff) format("woff");font-display:fallback}@font-face{font-family:GDS Transport;font-style:normal;font-weight:700;src:url(/assets/fonts/bold-b542beb274-v2.woff2) format("woff2"),url(/assets/fonts/bold-affa96571d-v2.woff) format("woff");font-display:fallback}@media print{.govuk-link{font-family:sans-serif}}.govuk-link:focus{outline:3px solid transparent;color:#0b0c0c;background-color:#fd0;box-shadow:0 -2px #fd0,0 4px #0b0c0c;text-decoration:none;-webkit-box-decoration-break:clone;box-decoration-break:clone}.govuk-link:link{color:#1d70b8}.govuk-link:visited{color:#4c2c92}.govuk-link:hover{color:#003078}.govuk-link:active{color:#0b0c0c}.govuk-link:focus{color:#0b0c0c}@media print{[href^="/"].govuk-link:after,[href^="http://"].govuk-link:after,[href^="https://"].govuk-link:after{content:" (" attr(href) ")";font-size:90%;word-wrap:break-word}}.govuk-link--muted:link,.govuk-link--muted:visited{color:#505a5f}.govuk-link--muted:hover,.govuk-link--muted:active{color:#0b0c0c}.govuk-link--muted:focus{color:#0b0c0c}.govuk-link--text-colour:link,.govuk-link--text-colour:visited{color:#0b0c0c}@media print{.govuk-link--text-colour:link,.govuk-link--text-colour:visited{color:#000}}.govuk-link--text-colour:hover{color:rgba(11,12,12,.99)}.govuk-link--text-colour:active,.govuk-link--text-colour:focus{color:#0b0c0c}@media print{.govuk-link--text-colour:active,.govuk-link--text-colour:focus{color:#000}}.govuk-link--inverse:link,.govuk-link--inverse:visited{color:#fff}.govuk-link--inverse:hover,.govuk-link--inverse:active{color:rgba(255,255,255,.99)}.govuk-link--inverse:focus{color:#0b0c0c}.govuk-link--no-underline:not(:hover):not(:active){text-decoration:none}.govuk-link--no-visited-state:link,.govuk-link--no-visited-state:visited{color:#1d70b8}.govuk-link--no-visited-state:hover{color:#003078}.govuk-link--no-visited-state:active{color:#0b0c0c}.govuk-link--no-visited-state:focus{color:#0b0c0c}.govuk-list{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:16px;font-size:1rem;line-height:1.25;color:#0b0c0c;margin-top:0;margin-bottom:15px;padding-left:0;list-style-type:none}@media print{.govuk-list{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-list{font-size:19px;font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-list{font-size:14pt;line-height:1.15}}@media print{.govuk-list{color:#000}}@media (min-width: 40.0625em){.govuk-list{margin-bottom:20px}}.govuk-list .govuk-list{margin-top:10px}.govuk-list>li{margin-bottom:5px}.govuk-list--bullet{padding-left:20px;list-style-type:disc}.govuk-list--number{padding-left:20px;list-style-type:decimal}.govuk-list--bullet>li,.govuk-list--number>li{margin-bottom:0}@media (min-width: 40.0625em){.govuk-list--bullet>li,.govuk-list--number>li{margin-bottom:5px}}.govuk-list--spaced>li{margin-bottom:10px}@media (min-width: 40.0625em){.govuk-list--spaced>li{margin-bottom:15px}}.govuk-heading-xl{color:#0b0c0c;font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:700;font-size:32px;font-size:2rem;line-height:1.09375;display:block;margin-top:0;margin-bottom:30px}@media print{.govuk-heading-xl{color:#000}}@media print{.govuk-heading-xl{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-heading-xl{font-size:48px;font-size:3rem;line-height:1.0416666667}}@media print{.govuk-heading-xl{font-size:32pt;line-height:1.15}}@media (min-width: 40.0625em){.govuk-heading-xl{margin-bottom:50px}}.govuk-heading-l{color:#0b0c0c;font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:700;font-size:24px;font-size:1.5rem;line-height:1.0416666667;display:block;margin-top:0;margin-bottom:20px}@media print{.govuk-heading-l{color:#000}}@media print{.govuk-heading-l{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-heading-l{font-size:36px;font-size:2.25rem;line-height:1.1111111111}}@media print{.govuk-heading-l{font-size:24pt;line-height:1.05}}@media (min-width: 40.0625em){.govuk-heading-l{margin-bottom:30px}}.govuk-heading-m{color:#0b0c0c;font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:700;font-size:18px;font-size:1.125rem;line-height:1.1111111111;display:block;margin-top:0;margin-bottom:15px}@media print{.govuk-heading-m{color:#000}}@media print{.govuk-heading-m{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-heading-m{font-size:24px;font-size:1.5rem;line-height:1.25}}@media print{.govuk-heading-m{font-size:18pt;line-height:1.15}}@media (min-width: 40.0625em){.govuk-heading-m{margin-bottom:20px}}.govuk-heading-s{color:#0b0c0c;font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:700;font-size:16px;font-size:1rem;line-height:1.25;display:block;margin-top:0;margin-bottom:15px}@media print{.govuk-heading-s{color:#000}}@media print{.govuk-heading-s{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-heading-s{font-size:19px;font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-heading-s{font-size:14pt;line-height:1.15}}@media (min-width: 40.0625em){.govuk-heading-s{margin-bottom:20px}}.govuk-caption-xl{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:18px;font-size:1.125rem;line-height:1.1111111111;display:block;margin-bottom:5px;color:#505a5f}@media print{.govuk-caption-xl{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-caption-xl{font-size:27px;font-size:1.6875rem;line-height:1.1111111111}}@media print{.govuk-caption-xl{font-size:18pt;line-height:1.15}}.govuk-caption-l{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:18px;font-size:1.125rem;line-height:1.1111111111;display:block;margin-bottom:5px;color:#505a5f}@media print{.govuk-caption-l{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-caption-l{font-size:24px;font-size:1.5rem;line-height:1.25}}@media print{.govuk-caption-l{font-size:18pt;line-height:1.15}}@media (min-width: 40.0625em){.govuk-caption-l{margin-bottom:0}}.govuk-caption-m{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:16px;font-size:1rem;line-height:1.25;display:block;color:#505a5f}@media print{.govuk-caption-m{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-caption-m{font-size:19px;font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-caption-m{font-size:14pt;line-height:1.15}}.govuk-body-lead,.govuk-body-l{color:#0b0c0c;font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:18px;font-size:1.125rem;line-height:1.1111111111;margin-top:0;margin-bottom:20px}@media print{.govuk-body-lead,.govuk-body-l{color:#000}}@media print{.govuk-body-lead,.govuk-body-l{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-body-lead,.govuk-body-l{font-size:24px;font-size:1.5rem;line-height:1.25}}@media print{.govuk-body-lead,.govuk-body-l{font-size:18pt;line-height:1.15}}@media (min-width: 40.0625em){.govuk-body-lead,.govuk-body-l{margin-bottom:30px}}.govuk-body,.govuk-body-m{color:#0b0c0c;font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:16px;font-size:1rem;line-height:1.25;margin-top:0;margin-bottom:15px}@media print{.govuk-body,.govuk-body-m{color:#000}}@media print{.govuk-body,.govuk-body-m{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-body,.govuk-body-m{font-size:19px;font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-body,.govuk-body-m{font-size:14pt;line-height:1.15}}@media (min-width: 40.0625em){.govuk-body,.govuk-body-m{margin-bottom:20px}}.govuk-body-s{color:#0b0c0c;font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:14px;font-size:.875rem;line-height:1.1428571429;margin-top:0;margin-bottom:15px}@media print{.govuk-body-s{color:#000}}@media print{.govuk-body-s{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-body-s{font-size:16px;font-size:1rem;line-height:1.25}}@media print{.govuk-body-s{font-size:14pt;line-height:1.2}}@media (min-width: 40.0625em){.govuk-body-s{margin-bottom:20px}}.govuk-body-xs{color:#0b0c0c;font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:12px;font-size:.75rem;line-height:1.25;margin-top:0;margin-bottom:15px}@media print{.govuk-body-xs{color:#000}}@media print{.govuk-body-xs{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-body-xs{font-size:14px;font-size:.875rem;line-height:1.4285714286}}@media print{.govuk-body-xs{font-size:12pt;line-height:1.2}}@media (min-width: 40.0625em){.govuk-body-xs{margin-bottom:20px}}.govuk-body-l+.govuk-heading-l,.govuk-body-lead+.govuk-heading-l{padding-top:5px}@media (min-width: 40.0625em){.govuk-body-l+.govuk-heading-l,.govuk-body-lead+.govuk-heading-l{padding-top:10px}}.govuk-body-m+.govuk-heading-l,.govuk-body+.govuk-heading-l,.govuk-body-s+.govuk-heading-l,.govuk-list+.govuk-heading-l{padding-top:15px}@media (min-width: 40.0625em){.govuk-body-m+.govuk-heading-l,.govuk-body+.govuk-heading-l,.govuk-body-s+.govuk-heading-l,.govuk-list+.govuk-heading-l{padding-top:20px}}.govuk-body-m+.govuk-heading-m,.govuk-body+.govuk-heading-m,.govuk-body-s+.govuk-heading-m,.govuk-list+.govuk-heading-m,.govuk-body-m+.govuk-heading-s,.govuk-body+.govuk-heading-s,.govuk-body-s+.govuk-heading-s,.govuk-list+.govuk-heading-s{padding-top:5px}@media (min-width: 40.0625em){.govuk-body-m+.govuk-heading-m,.govuk-body+.govuk-heading-m,.govuk-body-s+.govuk-heading-m,.govuk-list+.govuk-heading-m,.govuk-body-m+.govuk-heading-s,.govuk-body+.govuk-heading-s,.govuk-body-s+.govuk-heading-s,.govuk-list+.govuk-heading-s{padding-top:10px}}.govuk-section-break{margin:0;border:0}.govuk-section-break--xl{margin-top:30px;margin-bottom:30px}@media (min-width: 40.0625em){.govuk-section-break--xl{margin-top:50px}}@media (min-width: 40.0625em){.govuk-section-break--xl{margin-bottom:50px}}.govuk-section-break--l{margin-top:20px;margin-bottom:20px}@media (min-width: 40.0625em){.govuk-section-break--l{margin-top:30px}}@media (min-width: 40.0625em){.govuk-section-break--l{margin-bottom:30px}}.govuk-section-break--m{margin-top:15px;margin-bottom:15px}@media (min-width: 40.0625em){.govuk-section-break--m{margin-top:20px}}@media (min-width: 40.0625em){.govuk-section-break--m{margin-bottom:20px}}.govuk-section-break--visible{border-bottom:1px solid #b1b4b6}.govuk-button-group{margin-bottom:5px;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center}@media (min-width: 40.0625em){.govuk-button-group{margin-bottom:15px}}.govuk-button-group .govuk-link{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:16px;font-size:1rem;line-height:1.1875;display:inline-block;max-width:100%;margin-top:5px;margin-bottom:20px;text-align:center}@media print{.govuk-button-group .govuk-link{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-button-group .govuk-link{font-size:19px;font-size:1.1875rem;line-height:1}}@media print{.govuk-button-group .govuk-link{font-size:14pt;line-height:19px}}.govuk-button-group .govuk-button{margin-bottom:17px}@media (min-width: 40.0625em){.govuk-button-group{margin-right:-15px;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:baseline;align-items:baseline}.govuk-button-group .govuk-button,.govuk-button-group .govuk-link{margin-right:15px}.govuk-button-group .govuk-link{text-align:left}}.govuk-form-group{margin-bottom:20px}.govuk-form-group:after{content:"";display:block;clear:both}@media (min-width: 40.0625em){.govuk-form-group{margin-bottom:30px}}.govuk-form-group .govuk-form-group:last-of-type{margin-bottom:0}.govuk-form-group--error{padding-left:15px;border-left:5px solid #d4351c}.govuk-form-group--error .govuk-form-group{padding:0;border:0}.govuk-grid-row{margin-right:-15px;margin-left:-15px}.govuk-grid-row:after{content:"";display:block;clear:both}.govuk-grid-column-one-quarter{box-sizing:border-box;width:100%;padding:0 15px}@media (min-width: 40.0625em){.govuk-grid-column-one-quarter{width:25%;float:left}}.govuk-grid-column-one-third{box-sizing:border-box;width:100%;padding:0 15px}@media (min-width: 40.0625em){.govuk-grid-column-one-third{width:33.3333333333%;float:left}}.govuk-grid-column-one-half{box-sizing:border-box;width:100%;padding:0 15px}@media (min-width: 40.0625em){.govuk-grid-column-one-half{width:50%;float:left}}.govuk-grid-column-two-thirds{box-sizing:border-box;width:100%;padding:0 15px}@media (min-width: 40.0625em){.govuk-grid-column-two-thirds{width:66.6666666667%;float:left}}.govuk-grid-column-three-quarters{box-sizing:border-box;width:100%;padding:0 15px}@media (min-width: 40.0625em){.govuk-grid-column-three-quarters{width:75%;float:left}}.govuk-grid-column-full{box-sizing:border-box;width:100%;padding:0 15px}@media (min-width: 40.0625em){.govuk-grid-column-full{width:100%;float:left}}.govuk-grid-column-one-quarter-from-desktop{box-sizing:border-box;padding:0 15px}@media (min-width: 48.0625em){.govuk-grid-column-one-quarter-from-desktop{width:25%;float:left}}.govuk-grid-column-one-third-from-desktop{box-sizing:border-box;padding:0 15px}@media (min-width: 48.0625em){.govuk-grid-column-one-third-from-desktop{width:33.3333333333%;float:left}}.govuk-grid-column-one-half-from-desktop{box-sizing:border-box;padding:0 15px}@media (min-width: 48.0625em){.govuk-grid-column-one-half-from-desktop{width:50%;float:left}}.govuk-grid-column-two-thirds-from-desktop{box-sizing:border-box;padding:0 15px}@media (min-width: 48.0625em){.govuk-grid-column-two-thirds-from-desktop{width:66.6666666667%;float:left}}.govuk-grid-column-three-quarters-from-desktop{box-sizing:border-box;padding:0 15px}@media (min-width: 48.0625em){.govuk-grid-column-three-quarters-from-desktop{width:75%;float:left}}.govuk-grid-column-full-from-desktop{box-sizing:border-box;padding:0 15px}@media (min-width: 48.0625em){.govuk-grid-column-full-from-desktop{width:100%;float:left}}.govuk-main-wrapper{display:block;padding-top:20px;padding-bottom:20px}@media (min-width: 40.0625em){.govuk-main-wrapper{padding-top:40px;padding-bottom:40px}}.govuk-main-wrapper--auto-spacing:first-child,.govuk-main-wrapper--l{padding-top:30px}@media (min-width: 40.0625em){.govuk-main-wrapper--auto-spacing:first-child,.govuk-main-wrapper--l{padding-top:50px}}.govuk-template{background-color:#f3f2f1;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%}@supports (position: -webkit-sticky) or (position: sticky){.govuk-template{scroll-padding-top:60px}.govuk-template:not(:has(.govuk-exit-this-page)){scroll-padding-top:0}}@media screen{.govuk-template{overflow-y:scroll}}.govuk-template__body{margin:0;background-color:#fff}.govuk-width-container{max-width:960px;margin-right:15px;margin-left:15px}@supports (margin: max(0px)){.govuk-width-container{margin-right:max(15px,calc(15px + env(safe-area-inset-right)));margin-left:max(15px,calc(15px + env(safe-area-inset-left)))}}@media (min-width: 40.0625em){.govuk-width-container{margin-right:30px;margin-left:30px}@supports (margin: max(0px)){.govuk-width-container{margin-right:max(30px,calc(15px + env(safe-area-inset-right)));margin-left:max(30px,calc(15px + env(safe-area-inset-left)))}}}@media (min-width: 1020px){.govuk-width-container{margin-right:auto;margin-left:auto}@supports (margin: max(0px)){.govuk-width-container{margin-right:auto;margin-left:auto}}}.govuk-accordion{margin-bottom:20px}@media (min-width: 40.0625em){.govuk-accordion{margin-bottom:30px}}.govuk-accordion__section{padding-top:15px}.govuk-accordion__section-heading{margin-top:0;margin-bottom:0;padding-top:15px;padding-bottom:15px}.govuk-accordion__section-button{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:700;font-size:18px;font-size:1.125rem;line-height:1.1111111111;color:#0b0c0c;display:block;margin-bottom:0;padding-top:15px}@media print{.govuk-accordion__section-button{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-accordion__section-button{font-size:24px;font-size:1.5rem;line-height:1.25}}@media print{.govuk-accordion__section-button{font-size:18pt;line-height:1.15}}@media print{.govuk-accordion__section-button{color:#000}}.govuk-accordion__section-content>:last-child{margin-bottom:0}.js-enabled .govuk-accordion{border-bottom:1px solid #b1b4b6}.js-enabled .govuk-accordion__section{padding-top:0}.js-enabled .govuk-accordion__section-content{display:none;padding-top:15px;padding-bottom:30px}@media (min-width: 40.0625em){.js-enabled .govuk-accordion__section-content{padding-bottom:50px}}.js-enabled .govuk-accordion__section-content[hidden]{padding-top:0;padding-bottom:0}@supports (content-visibility: hidden){.js-enabled .govuk-accordion__section-content[hidden]{content-visibility:hidden;display:inherit}}.js-enabled .govuk-accordion__section--expanded .govuk-accordion__section-content{display:block}.js-enabled .govuk-accordion__show-all{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:16px;font-size:1rem;line-height:1.25;position:relative;z-index:1;margin-bottom:9px;padding:5px 2px 5px 0;border-width:0;color:#1d70b8;background:none;cursor:pointer;-webkit-appearance:none}@media print{.js-enabled .govuk-accordion__show-all{font-family:sans-serif}}@media (min-width: 40.0625em){.js-enabled .govuk-accordion__show-all{font-size:19px;font-size:1.1875rem;line-height:1.3157894737}}@media print{.js-enabled .govuk-accordion__show-all{font-size:14pt;line-height:1.15}}@media (min-width: 40.0625em){.js-enabled .govuk-accordion__show-all{margin-bottom:14px}}.js-enabled .govuk-accordion__show-all::-moz-focus-inner{padding:0;border:0}.js-enabled .govuk-accordion__show-all:hover{color:#0b0c0c;background:#f3f2f1;box-shadow:0 -2px #f3f2f1,0 4px #f3f2f1}.js-enabled .govuk-accordion__show-all:hover .govuk-accordion__section-toggle-text{color:#0b0c0c}.js-enabled .govuk-accordion__show-all:hover .govuk-accordion-nav__chevron{color:#0b0c0c;background:#0b0c0c}.js-enabled .govuk-accordion__show-all:hover .govuk-accordion-nav__chevron:after{color:#f3f2f1}.js-enabled .govuk-accordion__show-all:focus{outline:3px solid transparent;color:#0b0c0c;background-color:#fd0;box-shadow:0 -2px #fd0,0 4px #0b0c0c;text-decoration:none;-webkit-box-decoration-break:clone;box-decoration-break:clone}.js-enabled .govuk-accordion__show-all:focus .govuk-accordion-nav__chevron{background:#0b0c0c}.js-enabled .govuk-accordion__show-all:focus .govuk-accordion-nav__chevron:after{color:#fd0}.js-enabled .govuk-accordion__section-heading{padding:0}.js-enabled .govuk-accordion-nav__chevron{box-sizing:border-box;display:inline-block;position:relative;width:1.25rem;height:1.25rem;border:.0625rem solid;border-radius:50%;vertical-align:middle}.js-enabled .govuk-accordion-nav__chevron:after{content:"";box-sizing:border-box;display:block;position:absolute;bottom:.3125rem;left:.375rem;width:.375rem;height:.375rem;-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg);border-top:.125rem solid;border-right:.125rem solid}.js-enabled .govuk-accordion-nav__chevron--down{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.js-enabled .govuk-accordion__section-button{width:100%;padding:10px 0 0;border:0;border-top:1px solid #b1b4b6;border-bottom:10px solid transparent;color:#0b0c0c;background:none;text-align:left;cursor:pointer;-webkit-appearance:none}@media (min-width: 40.0625em){.js-enabled .govuk-accordion__section-button{padding-bottom:10px}}.js-enabled .govuk-accordion__section-button:active{color:#0b0c0c;background:none}.js-enabled .govuk-accordion__section-button:hover{color:#0b0c0c;background:#f3f2f1}.js-enabled .govuk-accordion__section-button:hover .govuk-accordion__section-toggle-text{color:#0b0c0c}.js-enabled .govuk-accordion__section-button:hover .govuk-accordion-nav__chevron{color:#0b0c0c;background:#0b0c0c}.js-enabled .govuk-accordion__section-button:hover .govuk-accordion-nav__chevron:after{color:#f3f2f1}.js-enabled .govuk-accordion__section-button:focus{outline:0}.js-enabled .govuk-accordion__section-button:focus .govuk-accordion__section-heading-text-focus,.js-enabled .govuk-accordion__section-button:focus .govuk-accordion__section-summary-focus,.js-enabled .govuk-accordion__section-button:focus .govuk-accordion__section-toggle-focus{outline:3px solid transparent;color:#0b0c0c;background-color:#fd0;box-shadow:0 -2px #fd0,0 4px #0b0c0c;text-decoration:none;-webkit-box-decoration-break:clone;box-decoration-break:clone}.js-enabled .govuk-accordion__section-button:focus .govuk-accordion-nav__chevron{color:#0b0c0c;background:#0b0c0c}.js-enabled .govuk-accordion__section-button:focus .govuk-accordion-nav__chevron:after{color:#fd0}.js-enabled .govuk-accordion__section-button::-moz-focus-inner{padding:0;border:0}.js-enabled .govuk-accordion__section--expanded .govuk-accordion__section-button{padding-bottom:15px;border-bottom:0}@media (min-width: 40.0625em){.js-enabled .govuk-accordion__section--expanded .govuk-accordion__section-button{padding-bottom:20px}}.js-enabled .govuk-accordion__section-button:focus .govuk-accordion__section-toggle-focus{padding-bottom:3px}@media (min-width: 48.0625em){.js-enabled .govuk-accordion__section-button:focus .govuk-accordion__section-toggle-focus{padding-bottom:2px}}.js-enabled .govuk-accordion__section-toggle,.js-enabled .govuk-accordion__section-heading-text,.js-enabled .govuk-accordion__section-summary{display:block;margin-bottom:13px}.js-enabled .govuk-accordion__section-toggle .govuk-accordion__section-heading-text-focus,.js-enabled .govuk-accordion__section-toggle .govuk-accordion__section-summary-focus,.js-enabled .govuk-accordion__section-toggle .govuk-accordion__section-toggle-focus,.js-enabled .govuk-accordion__section-heading-text .govuk-accordion__section-heading-text-focus,.js-enabled .govuk-accordion__section-heading-text .govuk-accordion__section-summary-focus,.js-enabled .govuk-accordion__section-heading-text .govuk-accordion__section-toggle-focus,.js-enabled .govuk-accordion__section-summary .govuk-accordion__section-heading-text-focus,.js-enabled .govuk-accordion__section-summary .govuk-accordion__section-summary-focus,.js-enabled .govuk-accordion__section-summary .govuk-accordion__section-toggle-focus{display:inline}.js-enabled .govuk-accordion__section-toggle{font-size:16px;font-size:1rem;line-height:1.25;font-weight:400;color:#1d70b8}@media (min-width: 40.0625em){.js-enabled .govuk-accordion__section-toggle{font-size:19px;font-size:1.1875rem;line-height:1.3157894737}}@media print{.js-enabled .govuk-accordion__section-toggle{font-size:14pt;line-height:1.15}}.js-enabled .govuk-accordion__show-all-text,.js-enabled .govuk-accordion__section-toggle-text{margin-left:5px;vertical-align:middle}@media screen and (forced-colors: active){.js-enabled .govuk-accordion__show-all:hover .govuk-accordion-nav__chevron,.js-enabled .govuk-accordion__section-button:hover .govuk-accordion-nav__chevron{background-color:transparent}.js-enabled .govuk-accordion__show-all:focus .govuk-accordion__section-heading-text-focus,.js-enabled .govuk-accordion__show-all:focus .govuk-accordion__section-summary-focus,.js-enabled .govuk-accordion__show-all:focus .govuk-accordion__section-toggle-focus,.js-enabled .govuk-accordion__show-all:focus .govuk-accordion-nav__chevron,.js-enabled .govuk-accordion__section-button:focus .govuk-accordion__section-heading-text-focus,.js-enabled .govuk-accordion__section-button:focus .govuk-accordion__section-summary-focus,.js-enabled .govuk-accordion__section-button:focus .govuk-accordion__section-toggle-focus,.js-enabled .govuk-accordion__section-button:focus .govuk-accordion-nav__chevron{background:transparent;background-color:transparent}}@media (hover: none){.js-enabled .govuk-accordion__section-header:hover{border-top-color:#b1b4b6;box-shadow:inset 0 3px #1d70b8}.js-enabled .govuk-accordion__section-header:hover .govuk-accordion__section-button{border-top-color:#b1b4b6}}.govuk-back-link{font-size:14px;font-size:.875rem;line-height:1.1428571429;font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:underline;display:inline-block;position:relative;margin-top:15px;margin-bottom:15px;padding-left:.875em}@media (min-width: 40.0625em){.govuk-back-link{font-size:16px;font-size:1rem;line-height:1.25}}@media print{.govuk-back-link{font-size:14pt;line-height:1.2}}@media print{.govuk-back-link{font-family:sans-serif}}.govuk-back-link:focus{outline:3px solid transparent;color:#0b0c0c;background-color:#fd0;box-shadow:0 -2px #fd0,0 4px #0b0c0c;text-decoration:none;-webkit-box-decoration-break:clone;box-decoration-break:clone}.govuk-back-link:link,.govuk-back-link:visited{color:#0b0c0c}@media print{.govuk-back-link:link,.govuk-back-link:visited{color:#000}}.govuk-back-link:hover{color:rgba(11,12,12,.99)}.govuk-back-link:active,.govuk-back-link:focus{color:#0b0c0c}@media print{.govuk-back-link:active,.govuk-back-link:focus{color:#000}}.govuk-back-link:before{content:"";display:block;position:absolute;top:0;bottom:0;left:.1875em;width:.4375em;height:.4375em;margin:auto 0;-webkit-transform:rotate(225deg);-ms-transform:rotate(225deg);transform:rotate(225deg);border:solid;border-width:1px 1px 0 0;border-color:#505a5f}@supports (border-width: max(0px)){.govuk-back-link:before{border-width:max(1px,.0625em) max(1px,.0625em) 0 0;font-size:max(16px,1em)}}.govuk-back-link:focus:before{border-color:#0b0c0c}.govuk-back-link:after{content:"";position:absolute;top:-14px;right:0;bottom:-14px;left:0}.govuk-back-link--inverse:link,.govuk-back-link--inverse:visited{color:#fff}.govuk-back-link--inverse:hover,.govuk-back-link--inverse:active{color:rgba(255,255,255,.99)}.govuk-back-link--inverse:focus{color:#0b0c0c}.govuk-back-link--inverse:before{border-color:currentcolor}.govuk-breadcrumbs{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:14px;font-size:.875rem;line-height:1.1428571429;color:#0b0c0c;margin-top:15px;margin-bottom:10px}@media print{.govuk-breadcrumbs{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-breadcrumbs{font-size:16px;font-size:1rem;line-height:1.25}}@media print{.govuk-breadcrumbs{font-size:14pt;line-height:1.2}}@media print{.govuk-breadcrumbs{color:#000}}.govuk-breadcrumbs__list{margin:0;padding:0;list-style-type:none}.govuk-breadcrumbs__list:after{content:"";display:block;clear:both}.govuk-breadcrumbs__list-item{display:inline-block;position:relative;margin-bottom:5px;margin-left:.625em;padding-left:.9784375em;float:left}.govuk-breadcrumbs__list-item:before{content:"";display:block;position:absolute;top:0;bottom:0;left:-.206875em;width:.4375em;height:.4375em;margin:auto 0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);border:solid;border-width:1px 1px 0 0;border-color:#505a5f}@supports (border-width: max(0px)){.govuk-breadcrumbs__list-item:before{border-width:max(1px,.0625em) max(1px,.0625em) 0 0;font-size:max(16px,1em)}}.govuk-breadcrumbs__list-item:first-child{margin-left:0;padding-left:0}.govuk-breadcrumbs__list-item:first-child:before{content:none;display:none}.govuk-breadcrumbs__link{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:underline}@media print{.govuk-breadcrumbs__link{font-family:sans-serif}}.govuk-breadcrumbs__link:focus{outline:3px solid transparent;color:#0b0c0c;background-color:#fd0;box-shadow:0 -2px #fd0,0 4px #0b0c0c;text-decoration:none;-webkit-box-decoration-break:clone;box-decoration-break:clone}.govuk-breadcrumbs__link:link,.govuk-breadcrumbs__link:visited{color:#0b0c0c}@media print{.govuk-breadcrumbs__link:link,.govuk-breadcrumbs__link:visited{color:#000}}.govuk-breadcrumbs__link:hover{color:rgba(11,12,12,.99)}.govuk-breadcrumbs__link:active,.govuk-breadcrumbs__link:focus{color:#0b0c0c}@media print{.govuk-breadcrumbs__link:active,.govuk-breadcrumbs__link:focus{color:#000}}@media (max-width: 40.0525em){.govuk-breadcrumbs--collapse-on-mobile .govuk-breadcrumbs__list-item{display:none}.govuk-breadcrumbs--collapse-on-mobile .govuk-breadcrumbs__list-item:first-child,.govuk-breadcrumbs--collapse-on-mobile .govuk-breadcrumbs__list-item:last-child{display:inline-block}.govuk-breadcrumbs--collapse-on-mobile .govuk-breadcrumbs__list-item:before{top:.375em;margin:0}.govuk-breadcrumbs--collapse-on-mobile .govuk-breadcrumbs__list{display:-ms-flexbox;display:flex}}.govuk-breadcrumbs--inverse,.govuk-breadcrumbs--inverse .govuk-breadcrumbs__link:link,.govuk-breadcrumbs--inverse .govuk-breadcrumbs__link:visited{color:#fff}.govuk-breadcrumbs--inverse .govuk-breadcrumbs__link:hover,.govuk-breadcrumbs--inverse .govuk-breadcrumbs__link:active{color:rgba(255,255,255,.99)}.govuk-breadcrumbs--inverse .govuk-breadcrumbs__link:focus{color:#0b0c0c}.govuk-breadcrumbs--inverse .govuk-breadcrumbs__list-item:before{border-color:currentcolor}.govuk-button{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:16px;font-size:1rem;line-height:1.1875;box-sizing:border-box;display:inline-block;position:relative;width:100%;margin:0 0 22px;padding:8px 10px 7px;border:2px solid transparent;border-radius:0;color:#fff;background-color:#00703c;box-shadow:0 2px #002d18;text-align:center;vertical-align:top;cursor:pointer;-webkit-appearance:none}@media print{.govuk-button{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-button{font-size:19px;font-size:1.1875rem;line-height:1}}@media print{.govuk-button{font-size:14pt;line-height:19px}}@media (min-width: 40.0625em){.govuk-button{margin-bottom:32px}}@media (min-width: 40.0625em){.govuk-button{width:auto}}.govuk-button:link,.govuk-button:visited,.govuk-button:active,.govuk-button:hover{color:#fff;text-decoration:none}.govuk-button::-moz-focus-inner{padding:0;border:0}.govuk-button:hover{background-color:#005a30}.govuk-button:active{top:2px}.govuk-button:focus{border-color:#fd0;outline:3px solid transparent;box-shadow:inset 0 0 0 1px #fd0}.govuk-button:focus:not(:active):not(:hover){border-color:#fd0;color:#0b0c0c;background-color:#fd0;box-shadow:0 2px #0b0c0c}.govuk-button:before{content:"";display:block;position:absolute;top:-2px;right:-2px;bottom:-4px;left:-2px;background:transparent}.govuk-button:active:before{top:-4px}.govuk-button--disabled,.govuk-button[disabled=disabled],.govuk-button[disabled]{opacity:.5}.govuk-button--disabled:hover,.govuk-button[disabled=disabled]:hover,.govuk-button[disabled]:hover{background-color:#00703c;cursor:not-allowed}.govuk-button--disabled:active,.govuk-button[disabled=disabled]:active,.govuk-button[disabled]:active{top:0;box-shadow:0 2px #002d18}.govuk-button--secondary{background-color:#f3f2f1;box-shadow:0 2px #929191}.govuk-button--secondary,.govuk-button--secondary:link,.govuk-button--secondary:visited,.govuk-button--secondary:active,.govuk-button--secondary:hover{color:#0b0c0c}.govuk-button--secondary:hover{background-color:#dbdad9}.govuk-button--secondary:hover[disabled]{background-color:#f3f2f1}.govuk-button--warning{background-color:#d4351c;box-shadow:0 2px #55150b}.govuk-button--warning,.govuk-button--warning:link,.govuk-button--warning:visited,.govuk-button--warning:active,.govuk-button--warning:hover{color:#fff}.govuk-button--warning:hover{background-color:#aa2a16}.govuk-button--warning:hover[disabled]{background-color:#d4351c}.govuk-button--inverse{background-color:#fff;box-shadow:0 2px #144e81}.govuk-button--inverse,.govuk-button--inverse:link,.govuk-button--inverse:visited,.govuk-button--inverse:active,.govuk-button--inverse:hover{color:#1d70b8}.govuk-button--inverse:hover{background-color:#e8f1f8}.govuk-button--inverse:hover[disabled]{background-color:#fff}.govuk-button--start{font-weight:700;font-size:18px;font-size:1.125rem;line-height:1;display:-ms-inline-flexbox;display:inline-flex;min-height:auto;-ms-flex-pack:center;justify-content:center}@media (min-width: 40.0625em){.govuk-button--start{font-size:24px;font-size:1.5rem;line-height:1}}@media print{.govuk-button--start{font-size:18pt;line-height:1}}.govuk-button__start-icon{margin-left:5px;vertical-align:middle;-ms-flex-negative:0;flex-shrink:0;-ms-flex-item-align:center;align-self:center;forced-color-adjust:auto}@media (min-width: 48.0625em){.govuk-button__start-icon{margin-left:10px}}.govuk-error-message{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:700;font-size:16px;font-size:1rem;line-height:1.25;display:block;margin-top:0;margin-bottom:15px;clear:both;color:#d4351c}@media print{.govuk-error-message{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-error-message{font-size:19px;font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-error-message{font-size:14pt;line-height:1.15}}.govuk-fieldset{min-width:0;margin:0;padding:0;border:0}.govuk-fieldset:after{content:"";display:block;clear:both}@supports not (caret-color: auto){.govuk-fieldset,x:-moz-any-link{display:table-cell}}.govuk-fieldset__legend{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:16px;font-size:1rem;line-height:1.25;color:#0b0c0c;box-sizing:border-box;display:table;max-width:100%;margin-bottom:10px;padding:0;white-space:normal}@media print{.govuk-fieldset__legend{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-fieldset__legend{font-size:19px;font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-fieldset__legend{font-size:14pt;line-height:1.15}}@media print{.govuk-fieldset__legend{color:#000}}.govuk-fieldset__legend--xl{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:700;font-size:32px;font-size:2rem;line-height:1.09375;margin-bottom:15px}@media print{.govuk-fieldset__legend--xl{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-fieldset__legend--xl{font-size:48px;font-size:3rem;line-height:1.0416666667}}@media print{.govuk-fieldset__legend--xl{font-size:32pt;line-height:1.15}}.govuk-fieldset__legend--l{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:700;font-size:24px;font-size:1.5rem;line-height:1.0416666667;margin-bottom:15px}@media print{.govuk-fieldset__legend--l{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-fieldset__legend--l{font-size:36px;font-size:2.25rem;line-height:1.1111111111}}@media print{.govuk-fieldset__legend--l{font-size:24pt;line-height:1.05}}.govuk-fieldset__legend--m{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:700;font-size:18px;font-size:1.125rem;line-height:1.1111111111;margin-bottom:15px}@media print{.govuk-fieldset__legend--m{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-fieldset__legend--m{font-size:24px;font-size:1.5rem;line-height:1.25}}@media print{.govuk-fieldset__legend--m{font-size:18pt;line-height:1.15}}.govuk-fieldset__legend--s{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:700;font-size:16px;font-size:1rem;line-height:1.25}@media print{.govuk-fieldset__legend--s{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-fieldset__legend--s{font-size:19px;font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-fieldset__legend--s{font-size:14pt;line-height:1.15}}.govuk-fieldset__heading{margin:0;font-size:inherit;font-weight:inherit}.govuk-hint{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:16px;font-size:1rem;line-height:1.25;margin-bottom:15px;color:#505a5f}@media print{.govuk-hint{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-hint{font-size:19px;font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-hint{font-size:14pt;line-height:1.15}}.govuk-label:not(.govuk-label--m):not(.govuk-label--l):not(.govuk-label--xl)+.govuk-hint{margin-bottom:10px}.govuk-fieldset__legend:not(.govuk-fieldset__legend--m):not(.govuk-fieldset__legend--l):not(.govuk-fieldset__legend--xl)+.govuk-hint{margin-bottom:10px}.govuk-fieldset__legend+.govuk-hint{margin-top:-5px}.govuk-label{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:16px;font-size:1rem;line-height:1.25;color:#0b0c0c;display:block;margin-bottom:5px}@media print{.govuk-label{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-label{font-size:19px;font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-label{font-size:14pt;line-height:1.15}}@media print{.govuk-label{color:#000}}.govuk-label--xl{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:700;font-size:32px;font-size:2rem;line-height:1.09375;margin-bottom:15px}@media print{.govuk-label--xl{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-label--xl{font-size:48px;font-size:3rem;line-height:1.0416666667}}@media print{.govuk-label--xl{font-size:32pt;line-height:1.15}}.govuk-label--l{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:700;font-size:24px;font-size:1.5rem;line-height:1.0416666667;margin-bottom:15px}@media print{.govuk-label--l{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-label--l{font-size:36px;font-size:2.25rem;line-height:1.1111111111}}@media print{.govuk-label--l{font-size:24pt;line-height:1.05}}.govuk-label--m{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:700;font-size:18px;font-size:1.125rem;line-height:1.1111111111;margin-bottom:10px}@media print{.govuk-label--m{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-label--m{font-size:24px;font-size:1.5rem;line-height:1.25}}@media print{.govuk-label--m{font-size:18pt;line-height:1.15}}.govuk-label--s{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:700;font-size:16px;font-size:1rem;line-height:1.25}@media print{.govuk-label--s{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-label--s{font-size:19px;font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-label--s{font-size:14pt;line-height:1.15}}.govuk-label-wrapper{margin:0}.govuk-checkboxes__item{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:16px;font-size:1rem;line-height:1.25;display:block;position:relative;min-height:40px;margin-bottom:10px;padding-left:40px;clear:left}@media print{.govuk-checkboxes__item{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-checkboxes__item{font-size:19px;font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-checkboxes__item{font-size:14pt;line-height:1.15}}.govuk-checkboxes__item:last-child,.govuk-checkboxes__item:last-of-type{margin-bottom:0}.govuk-checkboxes__input{cursor:pointer;position:absolute;z-index:1;top:-2px;left:-2px;width:44px;height:44px;margin:0;opacity:0}.govuk-checkboxes__label{display:inline-block;margin-bottom:0;padding:8px 15px 5px;cursor:pointer;-ms-touch-action:manipulation;touch-action:manipulation}.govuk-checkboxes__label:before{content:"";box-sizing:border-box;position:absolute;top:0;left:0;width:40px;height:40px;border:2px solid currentcolor;background:transparent}.govuk-checkboxes__label:after{content:"";box-sizing:border-box;position:absolute;top:11px;left:9px;width:23px;height:12px;-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg);border:solid;border-width:0 0 5px 5px;border-top-color:transparent;opacity:0;background:transparent}.govuk-checkboxes__hint{display:block;padding-right:15px;padding-left:15px}.govuk-checkboxes__input:focus+.govuk-checkboxes__label:before{border-width:4px;outline:3px solid transparent;outline-offset:1px;box-shadow:0 0 0 3px #fd0}@media screen and (forced-colors: active),(-ms-high-contrast: active){.govuk-checkboxes__input:focus+.govuk-checkboxes__label:before{outline-color:Highlight}}.govuk-checkboxes__input:checked+.govuk-checkboxes__label:after{opacity:1}.govuk-checkboxes__input:disabled,.govuk-checkboxes__input:disabled+.govuk-checkboxes__label{cursor:not-allowed}.govuk-checkboxes__input:disabled+.govuk-checkboxes__label,.govuk-checkboxes__input:disabled~.govuk-hint{opacity:.5}.govuk-checkboxes__divider{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:16px;font-size:1rem;line-height:1.25;color:#0b0c0c;width:40px;margin-bottom:10px;text-align:center}@media print{.govuk-checkboxes__divider{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-checkboxes__divider{font-size:19px;font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-checkboxes__divider{font-size:14pt;line-height:1.15}}@media print{.govuk-checkboxes__divider{color:#000}}.govuk-checkboxes__conditional{margin-bottom:15px;margin-left:18px;padding-left:33px;border-left:4px solid #b1b4b6}@media (min-width: 40.0625em){.govuk-checkboxes__conditional{margin-bottom:20px}}.js-enabled .govuk-checkboxes__conditional--hidden{display:none}.govuk-checkboxes__conditional>:last-child{margin-bottom:0}.govuk-checkboxes--small .govuk-checkboxes__item{min-height:0;margin-bottom:0;padding-left:34px;float:left}.govuk-checkboxes--small .govuk-checkboxes__item:after{content:"";display:block;clear:both}.govuk-checkboxes--small .govuk-checkboxes__input{left:-10px}.govuk-checkboxes--small .govuk-checkboxes__label{margin-top:-2px;padding:13px 15px 13px 1px;float:left}@media (min-width: 40.0625em){.govuk-checkboxes--small .govuk-checkboxes__label{padding:11px 15px 10px 1px}}.govuk-checkboxes--small .govuk-checkboxes__label:before{top:8px;width:24px;height:24px}.govuk-checkboxes--small .govuk-checkboxes__label:after{top:15px;left:6px;width:12px;height:6.5px;border-width:0 0 3px 3px}.govuk-checkboxes--small .govuk-checkboxes__hint{padding:0;clear:both}.govuk-checkboxes--small .govuk-checkboxes__conditional{margin-left:10px;padding-left:20px;clear:both}.govuk-checkboxes--small .govuk-checkboxes__item:hover .govuk-checkboxes__input:not(:disabled)+.govuk-checkboxes__label:before{box-shadow:0 0 0 10px #b1b4b6}.govuk-checkboxes--small .govuk-checkboxes__item:hover .govuk-checkboxes__input:focus+.govuk-checkboxes__label:before{box-shadow:0 0 0 3px #fd0,0 0 0 10px #b1b4b6}@media (hover: none),(pointer: coarse){.govuk-checkboxes--small .govuk-checkboxes__item:hover .govuk-checkboxes__input:not(:disabled)+.govuk-checkboxes__label:before{box-shadow:initial}.govuk-checkboxes--small .govuk-checkboxes__item:hover .govuk-checkboxes__input:focus+.govuk-checkboxes__label:before{box-shadow:0 0 0 3px #fd0}}.govuk-textarea{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:16px;font-size:1rem;line-height:1.25;box-sizing:border-box;display:block;width:100%;min-height:40px;margin-bottom:20px;padding:5px;resize:vertical;border:2px solid #0b0c0c;border-radius:0;-webkit-appearance:none}@media print{.govuk-textarea{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-textarea{font-size:19px;font-size:1.1875rem;line-height:1.25}}@media print{.govuk-textarea{font-size:14pt;line-height:1.25}}@media (min-width: 40.0625em){.govuk-textarea{margin-bottom:30px}}.govuk-textarea:focus{outline:3px solid #ffdd00;outline-offset:0;box-shadow:inset 0 0 0 2px}.govuk-textarea:disabled{opacity:.5;color:inherit;background-color:transparent;cursor:not-allowed}.govuk-textarea--error{border-color:#d4351c}.govuk-textarea--error:focus{border-color:#0b0c0c}.govuk-character-count{margin-bottom:20px}@media (min-width: 40.0625em){.govuk-character-count{margin-bottom:30px}}.govuk-character-count .govuk-form-group,.govuk-character-count .govuk-textarea{margin-bottom:5px}.govuk-character-count__message{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-font-feature-settings:"tnum" 1;font-feature-settings:"tnum" 1;font-weight:400;margin-top:0;margin-bottom:0}@media print{.govuk-character-count__message{font-family:sans-serif}}@supports (font-variant-numeric: tabular-nums){.govuk-character-count__message{-webkit-font-feature-settings:normal;font-feature-settings:normal;font-variant-numeric:tabular-nums}}.govuk-character-count__message:after{content:"\200b"}.govuk-character-count__message--disabled{visibility:hidden}.govuk-cookie-banner{padding-top:20px;border-bottom:10px solid transparent;background-color:#f3f2f1}.govuk-cookie-banner[hidden]{display:none}.govuk-cookie-banner__message{margin-bottom:-10px}.govuk-cookie-banner__message[hidden]{display:none}.govuk-cookie-banner__message:focus{outline:none}.govuk-input{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:16px;font-size:1rem;line-height:1.25;box-sizing:border-box;width:100%;height:40px;height:2.5rem;margin-top:0;padding:5px;border:2px solid #0b0c0c;border-radius:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}@media print{.govuk-input{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-input{font-size:19px;font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-input{font-size:14pt;line-height:1.15}}.govuk-input:focus{outline:3px solid #ffdd00;outline-offset:0;box-shadow:inset 0 0 0 2px}.govuk-input:disabled{opacity:.5;color:inherit;background-color:transparent;cursor:not-allowed}.govuk-input::-webkit-outer-spin-button,.govuk-input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none}.govuk-input[type=number]{-moz-appearance:textfield}.govuk-input--error{border-color:#d4351c}.govuk-input--error:focus{border-color:#0b0c0c}.govuk-input--extra-letter-spacing{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-font-feature-settings:"tnum" 1;font-feature-settings:"tnum" 1;font-weight:400;letter-spacing:.05em}@media print{.govuk-input--extra-letter-spacing{font-family:sans-serif}}@supports (font-variant-numeric: tabular-nums){.govuk-input--extra-letter-spacing{-webkit-font-feature-settings:normal;font-feature-settings:normal;font-variant-numeric:tabular-nums}}.govuk-input--width-30{max-width:29.5em}.govuk-input--width-20{max-width:20.5em}.govuk-input--width-10{max-width:11.5em}.govuk-input--width-5{max-width:5.5em}.govuk-input--width-4{max-width:4.5em}.govuk-input--width-3{max-width:3.75em}.govuk-input--width-2{max-width:2.75em}.govuk-input__wrapper{display:-ms-flexbox;display:flex}.govuk-input__wrapper .govuk-input{-ms-flex:0 1 auto;flex:0 1 auto}.govuk-input__wrapper .govuk-input:focus{z-index:1}@media (max-width: 19.99em){.govuk-input__wrapper{display:block}.govuk-input__wrapper .govuk-input{max-width:100%}}.govuk-input__prefix,.govuk-input__suffix{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:16px;font-size:1rem;line-height:1.25;box-sizing:border-box;display:inline-block;min-width:40px;min-width:2.5rem;height:40px;height:2.5rem;padding:5px;border:2px solid #0b0c0c;background-color:#f3f2f1;text-align:center;white-space:nowrap;cursor:default;-ms-flex:0 0 auto;flex:0 0 auto}@media print{.govuk-input__prefix,.govuk-input__suffix{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-input__prefix,.govuk-input__suffix{font-size:19px;font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-input__prefix,.govuk-input__suffix{font-size:14pt;line-height:1.15}}@media (max-width: 40.0525em){.govuk-input__prefix,.govuk-input__suffix{line-height:1.6}}@media (max-width: 19.99em){.govuk-input__prefix,.govuk-input__suffix{display:block;height:100%;white-space:normal}}@media (max-width: 19.99em){.govuk-input__prefix{border-bottom:0}}@media (min-width: 20em){.govuk-input__prefix{border-right:0}}@media (max-width: 19.99em){.govuk-input__suffix{border-top:0}}@media (min-width: 20em){.govuk-input__suffix{border-left:0}}.govuk-date-input{font-size:0}.govuk-date-input:after{content:"";display:block;clear:both}.govuk-date-input__item{display:inline-block;margin-right:20px;margin-bottom:0}.govuk-date-input__label{display:block}.govuk-date-input__input{margin-bottom:0}.govuk-details{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:16px;font-size:1rem;line-height:1.25;color:#0b0c0c;margin-bottom:20px;display:block}@media print{.govuk-details{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-details{font-size:19px;font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-details{font-size:14pt;line-height:1.15}}@media print{.govuk-details{color:#000}}@media (min-width: 40.0625em){.govuk-details{margin-bottom:30px}}.govuk-details__summary{display:inline-block;position:relative;margin-bottom:5px;padding-left:25px;color:#1d70b8;cursor:pointer}.govuk-details__summary:hover{color:#003078}.govuk-details__summary:focus{outline:3px solid transparent;color:#0b0c0c;background-color:#fd0;box-shadow:0 -2px #fd0,0 4px #0b0c0c;text-decoration:none;-webkit-box-decoration-break:clone;box-decoration-break:clone}.govuk-details__summary-text{text-decoration:underline}.govuk-details__summary:focus .govuk-details__summary-text{text-decoration:none}.govuk-details__summary::-webkit-details-marker{display:none}.govuk-details__summary:before{content:"";position:absolute;top:-1px;bottom:0;left:0;margin:auto;display:block;width:0;height:0;border-style:solid;border-color:transparent;-webkit-clip-path:polygon(0% 0%,100% 50%,0% 100%);clip-path:polygon(0% 0%,100% 50%,0% 100%);border-width:7px 0 7px 12.124px;border-left-color:inherit}.govuk-details[open]>.govuk-details__summary:before{display:block;width:0;height:0;border-style:solid;border-color:transparent;-webkit-clip-path:polygon(0% 0%,50% 100%,100% 0%);clip-path:polygon(0% 0%,50% 100%,100% 0%);border-width:12.124px 7px 0 7px;border-top-color:inherit}.govuk-details__text{padding-top:15px;padding-bottom:15px;padding-left:20px;border-left:5px solid #b1b4b6}.govuk-details__text p{margin-top:0;margin-bottom:20px}.govuk-details__text>:last-child{margin-bottom:0}.govuk-error-summary{color:#0b0c0c;padding:15px;margin-bottom:30px;border:5px solid #d4351c}@media print{.govuk-error-summary{color:#000}}@media (min-width: 40.0625em){.govuk-error-summary{padding:20px}}@media (min-width: 40.0625em){.govuk-error-summary{margin-bottom:50px}}.govuk-error-summary:focus{outline:3px solid #ffdd00}.govuk-error-summary__title{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:700;font-size:18px;font-size:1.125rem;line-height:1.1111111111;margin-top:0;margin-bottom:15px}@media print{.govuk-error-summary__title{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-error-summary__title{font-size:24px;font-size:1.5rem;line-height:1.25}}@media print{.govuk-error-summary__title{font-size:18pt;line-height:1.15}}@media (min-width: 40.0625em){.govuk-error-summary__title{margin-bottom:20px}}.govuk-error-summary__body{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:16px;font-size:1rem;line-height:1.25}@media print{.govuk-error-summary__body{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-error-summary__body{font-size:19px;font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-error-summary__body{font-size:14pt;line-height:1.15}}.govuk-error-summary__body p{margin-top:0;margin-bottom:15px}@media (min-width: 40.0625em){.govuk-error-summary__body p{margin-bottom:20px}}.govuk-error-summary__list{margin-top:0;margin-bottom:0}.govuk-error-summary__list a{font-weight:700;font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:underline}@media print{.govuk-error-summary__list a{font-family:sans-serif}}.govuk-error-summary__list a:focus{outline:3px solid transparent;color:#0b0c0c;background-color:#fd0;box-shadow:0 -2px #fd0,0 4px #0b0c0c;text-decoration:none;-webkit-box-decoration-break:clone;box-decoration-break:clone}.govuk-error-summary__list a:link,.govuk-error-summary__list a:visited{color:#d4351c}.govuk-error-summary__list a:hover{color:#942514}.govuk-error-summary__list a:active{color:#d4351c}.govuk-error-summary__list a:focus{color:#0b0c0c}.govuk-exit-this-page{margin-bottom:30px;position:-webkit-sticky;position:-webkit-sticky;position:sticky;z-index:1000;top:0;left:0;width:100%}@media (min-width: 40.0625em){.govuk-exit-this-page{margin-bottom:50px}}@media (min-width: 40.0625em){.govuk-exit-this-page{display:inline-block;right:0;left:auto;width:auto;float:right}}.govuk-exit-this-page__button{margin-bottom:0}.govuk-exit-this-page__indicator{padding:10px 10px 0;display:none;color:inherit;line-height:0;text-align:center;pointer-events:none}.govuk-exit-this-page__indicator--visible{display:block}.govuk-exit-this-page__indicator-light{box-sizing:border-box;display:inline-block;width:.75em;height:.75em;margin:0 .125em;border-width:2px;border-style:solid;border-radius:50%;border-color:currentcolor}.govuk-exit-this-page__indicator-light--on{border-width:.375em}@media only print{.govuk-exit-this-page{display:none}}.govuk-exit-this-page-overlay{position:fixed;z-index:9999;top:0;right:0;bottom:0;left:0;background-color:#fff}.govuk-exit-this-page-hide-content *{display:none!important}.govuk-exit-this-page-hide-content .govuk-exit-this-page-overlay{display:block!important}.govuk-file-upload{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:16px;font-size:1rem;line-height:1.25;color:#0b0c0c;max-width:100%;margin-left:-5px;padding:5px}@media print{.govuk-file-upload{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-file-upload{font-size:19px;font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-file-upload{font-size:14pt;line-height:1.15}}@media print{.govuk-file-upload{color:#000}}.govuk-file-upload::-webkit-file-upload-button{-webkit-appearance:button;color:inherit;font:inherit}.govuk-file-upload:focus{outline:3px solid #ffdd00;box-shadow:inset 0 0 0 4px #0b0c0c}.govuk-file-upload:focus-within{outline:3px solid #ffdd00;box-shadow:inset 0 0 0 4px #0b0c0c}.govuk-file-upload:disabled{opacity:.5;cursor:not-allowed}.govuk-footer{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:14px;font-size:.875rem;line-height:1.1428571429;padding-top:25px;padding-bottom:15px;border-top:1px solid #b1b4b6;color:#0b0c0c;background:#f3f2f1}@media print{.govuk-footer{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-footer{font-size:16px;font-size:1rem;line-height:1.25}}@media print{.govuk-footer{font-size:14pt;line-height:1.2}}@media (min-width: 40.0625em){.govuk-footer{padding-top:40px}}@media (min-width: 40.0625em){.govuk-footer{padding-bottom:25px}}.govuk-footer__link{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:underline}@media print{.govuk-footer__link{font-family:sans-serif}}.govuk-footer__link:focus{outline:3px solid transparent;color:#0b0c0c;background-color:#fd0;box-shadow:0 -2px #fd0,0 4px #0b0c0c;text-decoration:none;-webkit-box-decoration-break:clone;box-decoration-break:clone}.govuk-footer__link:link,.govuk-footer__link:visited{color:#0b0c0c}@media print{.govuk-footer__link:link,.govuk-footer__link:visited{color:#000}}.govuk-footer__link:hover{color:rgba(11,12,12,.99)}.govuk-footer__link:active,.govuk-footer__link:focus{color:#0b0c0c}@media print{.govuk-footer__link:active,.govuk-footer__link:focus{color:#000}}.govuk-footer__section-break{margin:0 0 30px;border:0;border-bottom:1px solid #b1b4b6}@media (min-width: 40.0625em){.govuk-footer__section-break{margin-bottom:50px}}.govuk-footer__meta{display:-ms-flexbox;display:flex;margin-right:-15px;margin-left:-15px;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:end;align-items:flex-end;-ms-flex-pack:center;justify-content:center}.govuk-footer__meta-item{margin-right:15px;margin-bottom:25px;margin-left:15px}.govuk-footer__meta-item--grow{-ms-flex:1;flex:1}@media (max-width: 40.0525em){.govuk-footer__meta-item--grow{-ms-flex-preferred-size:320px;flex-basis:320px}}.govuk-footer__licence-logo{display:inline-block;margin-right:10px;vertical-align:top;forced-color-adjust:auto}@media (max-width: 48.0525em){.govuk-footer__licence-logo{margin-bottom:15px}}.govuk-footer__licence-description{display:inline-block}.govuk-footer__copyright-logo{display:inline-block;min-width:125px;padding-top:112px;background-image:url(/assets/images/govuk-crest.png);background-repeat:no-repeat;background-position:50% 0%;background-size:125px 102px;text-align:center;white-space:nowrap}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min-resolution: 192dpi),only screen and (min-resolution: 2dppx){.govuk-footer__copyright-logo{background-image:url(/assets/images/govuk-crest-2x.png)}}.govuk-footer__inline-list{margin-top:0;margin-bottom:15px;padding:0}.govuk-footer__meta-custom{margin-bottom:20px}.govuk-footer__inline-list-item{display:inline-block;margin-right:15px;margin-bottom:5px}.govuk-footer__heading{margin-bottom:30px;padding-bottom:20px;border-bottom:1px solid #b1b4b6}@media (max-width: 40.0525em){.govuk-footer__heading{padding-bottom:10px}}.govuk-footer__navigation{margin-right:-15px;margin-left:-15px}.govuk-footer__navigation:after{content:"";display:block;clear:both}.govuk-footer__section{display:inline-block;margin-bottom:30px;vertical-align:top}.govuk-footer__list{margin:0;padding:0;list-style:none;-webkit-column-gap:30px;column-gap:30px}@media (min-width: 48.0625em){.govuk-footer__list--columns-2{-webkit-column-count:2;column-count:2}.govuk-footer__list--columns-3{-webkit-column-count:3;column-count:3}}.govuk-footer__list-item{margin-bottom:15px}@media (min-width: 40.0625em){.govuk-footer__list-item{margin-bottom:20px}}.govuk-footer__list-item:last-child{margin-bottom:0}.govuk-header{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:14px;font-size:.875rem;line-height:1.1428571429;border-bottom:10px solid #ffffff;color:#fff;background:#0b0c0c}@media print{.govuk-header{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-header{font-size:16px;font-size:1rem;line-height:1.25}}@media print{.govuk-header{font-size:14pt;line-height:1.2}}.govuk-header__container--full-width{padding:0 15px;border-color:#1d70b8}.govuk-header__container--full-width .govuk-header__menu-button{right:15px}.govuk-header__container{position:relative;margin-bottom:-10px;padding-top:10px;border-bottom:10px solid #1d70b8}.govuk-header__container:after{content:"";display:block;clear:both}.govuk-header__logotype{display:inline-block;margin-right:5px}@media (forced-colors: active){.govuk-header__logotype{forced-color-adjust:none;color:linktext}}.govuk-header__logotype:last-child{margin-right:0}.govuk-header__logotype-crown{position:relative;top:-1px;margin-right:1px;fill:currentcolor;vertical-align:top}.govuk-header__logotype-crown-fallback-image{width:36px;height:32px;border:0;vertical-align:bottom}.govuk-header__product-name{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:18px;font-size:1.125rem;line-height:1;display:inline-table}@media print{.govuk-header__product-name{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-header__product-name{font-size:24px;font-size:1.5rem;line-height:1}}@media print{.govuk-header__product-name{font-size:18pt;line-height:1}}.govuk-header__link{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none}@media print{.govuk-header__link{font-family:sans-serif}}.govuk-header__link:link,.govuk-header__link:visited{color:#fff}.govuk-header__link:hover,.govuk-header__link:active{color:rgba(255,255,255,.99)}.govuk-header__link:focus{color:#0b0c0c}.govuk-header__link:hover{text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:.1578em}.govuk-header__link:focus{outline:3px solid transparent;color:#0b0c0c;background-color:#fd0;box-shadow:0 -2px #fd0,0 4px #0b0c0c;text-decoration:none;-webkit-box-decoration-break:clone;box-decoration-break:clone}.govuk-header__link--homepage{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:700;display:inline-block;margin-right:10px;font-size:30px;line-height:1}@media print{.govuk-header__link--homepage{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-header__link--homepage{display:inline}.govuk-header__link--homepage:focus{box-shadow:0 0 #fd0}}.govuk-header__link--homepage:link,.govuk-header__link--homepage:visited{text-decoration:none}.govuk-header__link--homepage:hover,.govuk-header__link--homepage:active{margin-bottom:-3px;border-bottom:3px solid}.govuk-header__link--homepage:focus{margin-bottom:0;border-bottom:0}.govuk-header__service-name,.govuk-header__link--service-name{display:inline-block;margin-bottom:10px;font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:700;font-size:18px;font-size:1.125rem;line-height:1.1111111111}@media print{.govuk-header__service-name,.govuk-header__link--service-name{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-header__service-name,.govuk-header__link--service-name{font-size:24px;font-size:1.5rem;line-height:1.25}}@media print{.govuk-header__service-name,.govuk-header__link--service-name{font-size:18pt;line-height:1.15}}.govuk-header__logo,.govuk-header__content{box-sizing:border-box}.govuk-header__logo{margin-bottom:10px;padding-right:50px}@media (min-width: 48.0625em){.govuk-header__logo{width:33.33%;padding-right:15px;float:left;vertical-align:top}}@media (min-width: 48.0625em){.govuk-header__content{width:66.66%;padding-left:15px;float:left}}.govuk-header__menu-button{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:14px;font-size:.875rem;line-height:1.1428571429;display:none;position:absolute;top:20px;right:0;margin:0;padding:0;border:0;color:#fff;background:none;cursor:pointer}@media print{.govuk-header__menu-button{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-header__menu-button{font-size:16px;font-size:1rem;line-height:1.25}}@media print{.govuk-header__menu-button{font-size:14pt;line-height:1.2}}.govuk-header__menu-button:hover{-webkit-text-decoration:solid underline 3px;text-decoration:solid underline 3px;text-underline-offset:.1578em}.govuk-header__menu-button:focus{outline:3px solid transparent;color:#0b0c0c;background-color:#fd0;box-shadow:0 -2px #fd0,0 4px #0b0c0c;text-decoration:none;-webkit-box-decoration-break:clone;box-decoration-break:clone}.govuk-header__menu-button:after{display:inline-block;width:0;height:0;border-style:solid;border-color:transparent;-webkit-clip-path:polygon(0% 0%,50% 100%,100% 0%);clip-path:polygon(0% 0%,50% 100%,100% 0%);border-width:8.66px 5px 0 5px;border-top-color:inherit;content:"";margin-left:5px}.govuk-header__menu-button[aria-expanded=true]:after{display:inline-block;width:0;height:0;border-style:solid;border-color:transparent;-webkit-clip-path:polygon(50% 0%,0% 100%,100% 100%);clip-path:polygon(50% 0%,0% 100%,100% 100%);border-width:0 5px 8.66px 5px;border-bottom-color:inherit}@media (min-width: 40.0625em){.govuk-header__menu-button{top:15px}}.js-enabled .govuk-header__menu-button{display:block}.govuk-header__menu-button[hidden],.js-enabled .govuk-header__menu-button[hidden]{display:none}@media (min-width: 48.0625em){.govuk-header__navigation{margin-bottom:10px}}.govuk-header__navigation-list{margin:0;padding:0;list-style:none}.govuk-header__navigation-list[hidden]{display:none}@media (min-width: 48.0625em){.govuk-header__navigation--end{margin:0;padding:5px 0;text-align:right}}.govuk-header__navigation--no-service-name{padding-top:40px}.govuk-header__navigation-item{padding:10px 0;border-bottom:1px solid #2e3133}@media (min-width: 48.0625em){.govuk-header__navigation-item{display:inline-block;margin-right:15px;padding:5px 0;border:0}}.govuk-header__navigation-item a{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:700;font-size:14px;font-size:.875rem;line-height:1.1428571429;white-space:nowrap}@media print{.govuk-header__navigation-item a{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-header__navigation-item a{font-size:16px;font-size:1rem;line-height:1.25}}@media print{.govuk-header__navigation-item a{font-size:14pt;line-height:1.2}}.govuk-header__navigation-item--active a:link,.govuk-header__navigation-item--active a:hover,.govuk-header__navigation-item--active a:visited{color:#1d8feb}@media print{.govuk-header__navigation-item--active a{color:#1d70b8}}.govuk-header__navigation-item--active a:focus{color:#0b0c0c}.govuk-header__navigation-item:last-child{margin-right:0;border-bottom:0}@media print{.govuk-header{border-bottom-width:0;color:#0b0c0c;background:transparent}.govuk-header__logotype-crown-fallback-image{display:none}.govuk-header__link:link,.govuk-header__link:visited{color:#0b0c0c}.govuk-header__link:after{display:none}}.govuk-inset-text{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:16px;font-size:1rem;line-height:1.25;color:#0b0c0c;padding:15px;margin-top:20px;margin-bottom:20px;clear:both;border-left:10px solid #b1b4b6}@media print{.govuk-inset-text{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-inset-text{font-size:19px;font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-inset-text{font-size:14pt;line-height:1.15}}@media print{.govuk-inset-text{color:#000}}@media (min-width: 40.0625em){.govuk-inset-text{margin-top:30px}}@media (min-width: 40.0625em){.govuk-inset-text{margin-bottom:30px}}.govuk-inset-text>:first-child{margin-top:0}.govuk-inset-text>:only-child,.govuk-inset-text>:last-child{margin-bottom:0}.govuk-notification-banner{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:16px;font-size:1rem;line-height:1.25;margin-bottom:30px;border:5px solid #1d70b8;background-color:#1d70b8}@media print{.govuk-notification-banner{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-notification-banner{font-size:19px;font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-notification-banner{font-size:14pt;line-height:1.15}}@media (min-width: 40.0625em){.govuk-notification-banner{margin-bottom:50px}}.govuk-notification-banner:focus{outline:3px solid #ffdd00}.govuk-notification-banner__header{padding:2px 15px 5px;border-bottom:1px solid transparent}@media (min-width: 40.0625em){.govuk-notification-banner__header{padding:2px 20px 5px}}.govuk-notification-banner__title{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:700;font-size:16px;font-size:1rem;line-height:1.25;margin:0;padding:0;color:#fff}@media print{.govuk-notification-banner__title{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-notification-banner__title{font-size:19px;font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-notification-banner__title{font-size:14pt;line-height:1.15}}.govuk-notification-banner__content{color:#0b0c0c;padding:15px;background-color:#fff}@media print{.govuk-notification-banner__content{color:#000}}@media (min-width: 40.0625em){.govuk-notification-banner__content{padding:20px}}.govuk-notification-banner__content>*{box-sizing:border-box;max-width:605px}.govuk-notification-banner__content>:last-child{margin-bottom:0}.govuk-notification-banner__heading{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:700;font-size:18px;font-size:1.125rem;line-height:1.1111111111;margin:0 0 15px;padding:0}@media print{.govuk-notification-banner__heading{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-notification-banner__heading{font-size:24px;font-size:1.5rem;line-height:1.25}}@media print{.govuk-notification-banner__heading{font-size:18pt;line-height:1.15}}.govuk-notification-banner__link{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:underline}@media print{.govuk-notification-banner__link{font-family:sans-serif}}.govuk-notification-banner__link:focus{outline:3px solid transparent;color:#0b0c0c;background-color:#fd0;box-shadow:0 -2px #fd0,0 4px #0b0c0c;text-decoration:none;-webkit-box-decoration-break:clone;box-decoration-break:clone}.govuk-notification-banner__link:link,.govuk-notification-banner__link:visited{color:#1d70b8}.govuk-notification-banner__link:hover{color:#003078}.govuk-notification-banner__link:active{color:#0b0c0c}.govuk-notification-banner__link:focus{color:#0b0c0c}.govuk-notification-banner--success{border-color:#00703c;background-color:#00703c}.govuk-notification-banner--success .govuk-notification-banner__link:link,.govuk-notification-banner--success .govuk-notification-banner__link:visited{color:#00703c}.govuk-notification-banner--success .govuk-notification-banner__link:hover{color:#004e2a}.govuk-notification-banner--success .govuk-notification-banner__link:active{color:#00703c}.govuk-notification-banner--success .govuk-notification-banner__link:focus{color:#0b0c0c}.govuk-pagination{margin-bottom:20px;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center;-ms-flex-wrap:wrap;flex-wrap:wrap}@media (min-width: 40.0625em){.govuk-pagination{margin-bottom:30px}}@media (min-width: 40.0625em){.govuk-pagination{-ms-flex-direction:row;flex-direction:row;-ms-flex-align:start;align-items:flex-start}}.govuk-pagination__list{margin:0;padding:0;list-style:none}.govuk-pagination__item,.govuk-pagination__next,.govuk-pagination__prev{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:16px;font-size:1rem;line-height:1.25;box-sizing:border-box;position:relative;min-width:45px;min-height:45px;padding:10px 15px;float:left}@media print{.govuk-pagination__item,.govuk-pagination__next,.govuk-pagination__prev{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-pagination__item,.govuk-pagination__next,.govuk-pagination__prev{font-size:19px;font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-pagination__item,.govuk-pagination__next,.govuk-pagination__prev{font-size:14pt;line-height:1.15}}.govuk-pagination__item:hover,.govuk-pagination__next:hover,.govuk-pagination__prev:hover{background-color:#f3f2f1}.govuk-pagination__item{display:none;text-align:center}@media (min-width: 40.0625em){.govuk-pagination__item{display:block}}.govuk-pagination__prev,.govuk-pagination__next{font-weight:700}.govuk-pagination__prev .govuk-pagination__link,.govuk-pagination__next .govuk-pagination__link{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.govuk-pagination__prev{padding-left:0}.govuk-pagination__next{padding-right:0}.govuk-pagination__item--current,.govuk-pagination__item--ellipses,.govuk-pagination__item:first-child,.govuk-pagination__item:last-child{display:block}.govuk-pagination__item--current{font-weight:700;outline:1px solid transparent;background-color:#1d70b8}.govuk-pagination__item--current:hover{background-color:#1d70b8}.govuk-pagination__item--current .govuk-pagination__link:link,.govuk-pagination__item--current .govuk-pagination__link:visited{color:#fff}.govuk-pagination__item--current .govuk-pagination__link:hover,.govuk-pagination__item--current .govuk-pagination__link:active{color:rgba(255,255,255,.99)}.govuk-pagination__item--current .govuk-pagination__link:focus{color:#0b0c0c}.govuk-pagination__item--ellipses{font-weight:700;color:#505a5f}.govuk-pagination__item--ellipses:hover{background-color:transparent}.govuk-pagination__link{display:block;min-width:15px}@media screen{.govuk-pagination__link:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0}}.govuk-pagination__link:hover .govuk-pagination__link-title--decorated,.govuk-pagination__link:active .govuk-pagination__link-title--decorated{text-decoration:underline}.govuk-pagination__link:focus .govuk-pagination__icon{color:#0b0c0c}.govuk-pagination__link:focus .govuk-pagination__link-label{text-decoration:none}.govuk-pagination__link:focus .govuk-pagination__link-title--decorated{text-decoration:none}.govuk-pagination__link-label{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:16px;font-size:1rem;line-height:1.25;text-decoration:underline;display:inline-block;padding-left:30px}@media print{.govuk-pagination__link-label{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-pagination__link-label{font-size:19px;font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-pagination__link-label{font-size:14pt;line-height:1.15}}.govuk-pagination__icon{width:.9375rem;height:.8125rem;color:#505a5f;fill:currentcolor;forced-color-adjust:auto}.govuk-pagination__icon--prev{margin-right:15px}.govuk-pagination__icon--next{margin-left:15px}.govuk-pagination--block{display:block}.govuk-pagination--block .govuk-pagination__item{padding:15px;float:none}.govuk-pagination--block .govuk-pagination__next,.govuk-pagination--block .govuk-pagination__prev{padding-left:0;float:none}.govuk-pagination--block .govuk-pagination__next{padding-right:15px}.govuk-pagination--block .govuk-pagination__next .govuk-pagination__icon{margin-left:0}.govuk-pagination--block .govuk-pagination__prev+.govuk-pagination__next{border-top:1px solid #b1b4b6}.govuk-pagination--block .govuk-pagination__link,.govuk-pagination--block .govuk-pagination__link-title{display:inline}.govuk-pagination--block .govuk-pagination__link-title:after{content:"";display:block}.govuk-pagination--block .govuk-pagination__link{text-align:left}.govuk-pagination--block .govuk-pagination__link:focus .govuk-pagination__link-label{outline:3px solid transparent;color:#0b0c0c;background-color:#fd0;box-shadow:0 -2px #fd0,0 4px #0b0c0c;text-decoration:none;-webkit-box-decoration-break:clone;box-decoration-break:clone}.govuk-pagination--block .govuk-pagination__link:not(:focus){text-decoration:none}.govuk-pagination--block .govuk-pagination__icon{margin-right:10px}.govuk-panel{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:16px;font-size:1rem;line-height:1.25;box-sizing:border-box;margin-bottom:15px;padding:35px;border:5px solid transparent;text-align:center}@media print{.govuk-panel{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-panel{font-size:19px;font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-panel{font-size:14pt;line-height:1.15}}@media (max-width: 40.0525em){.govuk-panel{padding:10px;overflow-wrap:break-word;word-wrap:break-word}}.govuk-panel--confirmation{color:#fff;background:#00703c}@media print{.govuk-panel--confirmation{border-color:currentcolor;color:#000;background:none}}.govuk-panel__title{margin-top:0;margin-bottom:30px;font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:700;font-size:32px;font-size:2rem;line-height:1.09375}@media print{.govuk-panel__title{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-panel__title{font-size:48px;font-size:3rem;line-height:1.0416666667}}@media print{.govuk-panel__title{font-size:32pt;line-height:1.15}}.govuk-panel__title:last-child{margin-bottom:0}.govuk-panel__body{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:24px;font-size:1.5rem;line-height:1.0416666667}@media print{.govuk-panel__body{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-panel__body{font-size:36px;font-size:2.25rem;line-height:1.1111111111}}@media print{.govuk-panel__body{font-size:24pt;line-height:1.05}}.govuk-tag{display:inline-block;outline:2px solid transparent;outline-offset:-2px;color:#fff;background-color:#1d70b8;letter-spacing:1px;text-decoration:none;text-transform:uppercase;font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:700;font-size:14px;font-size:.875rem;line-height:1;padding:5px 8px 4px}@media print{.govuk-tag{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-tag{font-size:16px;font-size:1rem;line-height:1}}@media print{.govuk-tag{font-size:14pt;line-height:1}}.govuk-tag--grey{color:#383f43;background:#eeefef}.govuk-tag--purple{color:#3d2375;background:#dbd5e9}.govuk-tag--turquoise{color:#10403c;background:#bfe3e0}.govuk-tag--blue{color:#144e81;background:#d2e2f1}.govuk-tag--yellow{color:#594d00;background:#fff7bf}.govuk-tag--orange{color:#6e3619;background:#fcd6c3}.govuk-tag--red{color:#942514;background:#f6d7d2}.govuk-tag--pink{color:#80224d;background:#f7d7e6}.govuk-tag--green{color:#005a30;background:#cce2d8}.govuk-phase-banner{padding-top:10px;padding-bottom:10px;border-bottom:1px solid #b1b4b6}.govuk-phase-banner__content{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:14px;font-size:.875rem;line-height:1.1428571429;color:#0b0c0c;display:table;margin:0}@media print{.govuk-phase-banner__content{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-phase-banner__content{font-size:16px;font-size:1rem;line-height:1.25}}@media print{.govuk-phase-banner__content{font-size:14pt;line-height:1.2}}@media print{.govuk-phase-banner__content{color:#000}}.govuk-phase-banner__content__tag{margin-right:10px}.govuk-phase-banner__text{display:table-cell;vertical-align:middle}.govuk-tabs{margin-top:5px;margin-bottom:20px}@media (min-width: 40.0625em){.govuk-tabs{margin-bottom:30px}}.govuk-tabs__title{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:16px;font-size:1rem;line-height:1.25;color:#0b0c0c;margin-bottom:10px}@media print{.govuk-tabs__title{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-tabs__title{font-size:19px;font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-tabs__title{font-size:14pt;line-height:1.15}}@media print{.govuk-tabs__title{color:#000}}.govuk-tabs__list{margin:0 0 20px;padding:0;list-style:none}@media (min-width: 40.0625em){.govuk-tabs__list{margin-bottom:30px}}.govuk-tabs__list-item{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:16px;font-size:1rem;line-height:1.25;margin-left:25px}@media print{.govuk-tabs__list-item{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-tabs__list-item{font-size:19px;font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-tabs__list-item{font-size:14pt;line-height:1.15}}.govuk-tabs__list-item:before{color:#0b0c0c;content:"\2014";margin-left:-25px;padding-right:5px}@media print{.govuk-tabs__list-item:before{color:#000}}.govuk-tabs__tab{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:underline;display:inline-block;margin-bottom:10px}@media print{.govuk-tabs__tab{font-family:sans-serif}}.govuk-tabs__tab:focus{outline:3px solid transparent;color:#0b0c0c;background-color:#fd0;box-shadow:0 -2px #fd0,0 4px #0b0c0c;text-decoration:none;-webkit-box-decoration-break:clone;box-decoration-break:clone}.govuk-tabs__tab:link{color:#1d70b8}.govuk-tabs__tab:visited{color:#4c2c92}.govuk-tabs__tab:hover{color:#003078}.govuk-tabs__tab:active{color:#0b0c0c}.govuk-tabs__tab:focus{color:#0b0c0c}.govuk-tabs__panel{margin-bottom:30px}@media (min-width: 40.0625em){.govuk-tabs__panel{margin-bottom:50px}}@media (min-width: 40.0625em){.js-enabled .govuk-tabs__list{margin-bottom:0;border-bottom:1px solid #b1b4b6}.js-enabled .govuk-tabs__list:after{content:"";display:block;clear:both}.js-enabled .govuk-tabs__title{display:none}.js-enabled .govuk-tabs__list-item{position:relative;margin-right:5px;margin-bottom:0;margin-left:0;padding:10px 20px;float:left;background-color:#f3f2f1;text-align:center}.js-enabled .govuk-tabs__list-item:before{content:none}.js-enabled .govuk-tabs__list-item--selected{position:relative;margin-top:-5px;margin-bottom:-1px;padding:14px 19px 16px;border:1px solid #b1b4b6;border-bottom:0;background-color:#fff}.js-enabled .govuk-tabs__list-item--selected .govuk-tabs__tab{text-decoration:none}.js-enabled .govuk-tabs__tab{margin-bottom:0}.js-enabled .govuk-tabs__tab:link,.js-enabled .govuk-tabs__tab:visited{color:#0b0c0c}}@media print and (min-width: 40.0625em){.js-enabled .govuk-tabs__tab:link,.js-enabled .govuk-tabs__tab:visited{color:#000}}@media (min-width: 40.0625em){.js-enabled .govuk-tabs__tab:hover{color:rgba(11,12,12,.99)}.js-enabled .govuk-tabs__tab:active,.js-enabled .govuk-tabs__tab:focus{color:#0b0c0c}}@media print and (min-width: 40.0625em){.js-enabled .govuk-tabs__tab:active,.js-enabled .govuk-tabs__tab:focus{color:#000}}@media (min-width: 40.0625em){.js-enabled .govuk-tabs__tab:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0}.js-enabled .govuk-tabs__panel{margin-bottom:0;padding:30px 20px;border:1px solid #b1b4b6;border-top:0}.js-enabled .govuk-tabs__panel>:last-child{margin-bottom:0}.js-enabled .govuk-tabs__panel--hidden{display:none}}.govuk-radios__item{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:16px;font-size:1rem;line-height:1.25;display:block;position:relative;min-height:40px;margin-bottom:10px;padding-left:40px;clear:left}@media print{.govuk-radios__item{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-radios__item{font-size:19px;font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-radios__item{font-size:14pt;line-height:1.15}}.govuk-radios__item:last-child,.govuk-radios__item:last-of-type{margin-bottom:0}.govuk-radios__input{cursor:pointer;position:absolute;z-index:1;top:-2px;left:-2px;width:44px;height:44px;margin:0;opacity:0}.govuk-radios__label{display:inline-block;margin-bottom:0;padding:8px 15px 5px;cursor:pointer;-ms-touch-action:manipulation;touch-action:manipulation}.govuk-radios__label:before{content:"";box-sizing:border-box;position:absolute;top:0;left:0;width:40px;height:40px;border:2px solid currentcolor;border-radius:50%;background:transparent}.govuk-radios__label:after{content:"";position:absolute;top:10px;left:10px;width:0;height:0;border:10px solid currentcolor;border-radius:50%;opacity:0;background:currentcolor}.govuk-radios__hint{display:block;padding-right:15px;padding-left:15px}.govuk-radios__input:focus+.govuk-radios__label:before{border-width:4px;outline:3px solid transparent;outline-offset:1px;box-shadow:0 0 0 4px #fd0}@media screen and (forced-colors: active),(-ms-high-contrast: active){.govuk-radios__input:focus+.govuk-radios__label:before{outline-color:Highlight}}.govuk-radios__input:checked+.govuk-radios__label:after{opacity:1}.govuk-radios__input:disabled,.govuk-radios__input:disabled+.govuk-radios__label{cursor:not-allowed}.govuk-radios__input:disabled+.govuk-radios__label,.govuk-radios__input:disabled~.govuk-hint{opacity:.5}@media (min-width: 40.0625em){.govuk-radios--inline:after{content:"";display:block;clear:both}.govuk-radios--inline .govuk-radios__item{margin-right:20px;float:left;clear:none}}.govuk-radios__divider{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:16px;font-size:1rem;line-height:1.25;color:#0b0c0c;width:40px;margin-bottom:10px;text-align:center}@media print{.govuk-radios__divider{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-radios__divider{font-size:19px;font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-radios__divider{font-size:14pt;line-height:1.15}}@media print{.govuk-radios__divider{color:#000}}.govuk-radios__conditional{margin-bottom:15px;margin-left:18px;padding-left:33px;border-left:4px solid #b1b4b6}@media (min-width: 40.0625em){.govuk-radios__conditional{margin-bottom:20px}}.js-enabled .govuk-radios__conditional--hidden{display:none}.govuk-radios__conditional>:last-child{margin-bottom:0}.govuk-radios--small .govuk-radios__item{min-height:0;margin-bottom:0;padding-left:34px;float:left}.govuk-radios--small .govuk-radios__item:after{content:"";display:block;clear:both}.govuk-radios--small .govuk-radios__input{left:-10px}.govuk-radios--small .govuk-radios__label{margin-top:-2px;padding:13px 15px 13px 1px;float:left}@media (min-width: 40.0625em){.govuk-radios--small .govuk-radios__label{padding:11px 15px 10px 1px}}.govuk-radios--small .govuk-radios__label:before{top:8px;width:24px;height:24px}.govuk-radios--small .govuk-radios__label:after{top:15px;left:7px;border-width:5px}.govuk-radios--small .govuk-radios__hint{padding:0;clear:both;pointer-events:none}.govuk-radios--small .govuk-radios__conditional{margin-left:10px;padding-left:20px;clear:both}.govuk-radios--small .govuk-radios__divider{width:24px;margin-bottom:5px}.govuk-radios--small .govuk-radios__item:hover .govuk-radios__input:not(:disabled)+.govuk-radios__label:before{box-shadow:0 0 0 10px #b1b4b6}.govuk-radios--small .govuk-radios__item:hover .govuk-radios__input:focus+.govuk-radios__label:before{box-shadow:0 0 0 4px #fd0,0 0 0 10px #b1b4b6}@media (hover: none),(pointer: coarse){.govuk-radios--small .govuk-radios__item:hover .govuk-radios__input:not(:disabled)+.govuk-radios__label:before{box-shadow:initial}.govuk-radios--small .govuk-radios__item:hover .govuk-radios__input:focus+.govuk-radios__label:before{box-shadow:0 0 0 4px #fd0}}.govuk-select{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:16px;font-size:1rem;line-height:1.25;box-sizing:border-box;min-width:11.5em;max-width:100%;height:40px;height:2.5rem;padding:5px;border:2px solid #0b0c0c;color:#0b0c0c;background-color:#fff}@media print{.govuk-select{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-select{font-size:19px;font-size:1.1875rem;line-height:1.25}}@media print{.govuk-select{font-size:14pt;line-height:1.25}}.govuk-select:focus{outline:3px solid #ffdd00;outline-offset:0;box-shadow:inset 0 0 0 2px}.govuk-select:disabled{opacity:.5;color:inherit;cursor:not-allowed}.govuk-select option:active,.govuk-select option:checked,.govuk-select:focus::-ms-value{color:#fff;background-color:#1d70b8}.govuk-select--error{border-color:#d4351c}.govuk-select--error:focus{border-color:#0b0c0c}.govuk-skip-link{position:absolute!important;width:1px!important;height:1px!important;margin:0!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;-webkit-clip-path:inset(50%)!important;clip-path:inset(50%)!important;white-space:nowrap!important;font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:underline;font-size:14px;font-size:.875rem;line-height:1.1428571429;display:block;padding:10px 15px}.govuk-skip-link:active,.govuk-skip-link:focus{position:static!important;width:auto!important;height:auto!important;margin:inherit!important;overflow:visible!important;clip:auto!important;-webkit-clip-path:none!important;clip-path:none!important;white-space:inherit!important}@media print{.govuk-skip-link{font-family:sans-serif}}.govuk-skip-link:link,.govuk-skip-link:visited{color:#0b0c0c}@media print{.govuk-skip-link:link,.govuk-skip-link:visited{color:#000}}.govuk-skip-link:hover{color:rgba(11,12,12,.99)}.govuk-skip-link:active,.govuk-skip-link:focus{color:#0b0c0c}@media print{.govuk-skip-link:active,.govuk-skip-link:focus{color:#000}}@media (min-width: 40.0625em){.govuk-skip-link{font-size:16px;font-size:1rem;line-height:1.25}}@media print{.govuk-skip-link{font-size:14pt;line-height:1.2}}@supports (padding: max(0px)){.govuk-skip-link{padding-right:max(15px,calc(15px + env(safe-area-inset-right)));padding-left:max(15px,calc(15px + env(safe-area-inset-left)))}}.govuk-skip-link:focus{outline:3px solid #ffdd00;outline-offset:0;background-color:#fd0}.govuk-skip-link-focused-element:focus{outline:none}.govuk-summary-list{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:16px;font-size:1rem;line-height:1.25;color:#0b0c0c;margin:0 0 20px}@media print{.govuk-summary-list{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-summary-list{font-size:19px;font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-summary-list{font-size:14pt;line-height:1.15}}@media print{.govuk-summary-list{color:#000}}@media (min-width: 40.0625em){.govuk-summary-list{display:table;width:100%;table-layout:fixed;border-collapse:collapse}}@media (min-width: 40.0625em){.govuk-summary-list{margin-bottom:30px}}.govuk-summary-list__row{border-bottom:1px solid #b1b4b6}@media (max-width: 40.0525em){.govuk-summary-list__row{margin-bottom:15px}}@media (min-width: 40.0625em){.govuk-summary-list__row{display:table-row}}.govuk-summary-list__row:not(.govuk-summary-list__row--no-actions)>:last-child{padding-right:0}@media (min-width: 40.0625em){.govuk-summary-list__row--no-actions:after{content:"";display:table-cell;width:20%}}.govuk-summary-list__key,.govuk-summary-list__value,.govuk-summary-list__actions{margin:0}@media (min-width: 40.0625em){.govuk-summary-list__key,.govuk-summary-list__value,.govuk-summary-list__actions{display:table-cell;padding-top:10px;padding-right:20px;padding-bottom:10px}}.govuk-summary-list__actions{margin-bottom:15px}@media (min-width: 40.0625em){.govuk-summary-list__actions{width:20%;padding-right:0;text-align:right}}.govuk-summary-list__key,.govuk-summary-list__value{word-wrap:break-word;overflow-wrap:break-word}.govuk-summary-list__key{margin-bottom:5px;font-weight:700}@media (min-width: 40.0625em){.govuk-summary-list__key{width:30%}}@media (max-width: 40.0525em){.govuk-summary-list__value{margin-bottom:15px}}.govuk-summary-list__value>p{margin-bottom:10px}.govuk-summary-list__value>:last-child{margin-bottom:0}.govuk-summary-list__actions-list{width:100%;margin:0;padding:0}.govuk-summary-list__actions-list-item{display:inline-block}@media (max-width: 40.0525em){.govuk-summary-list__actions-list-item{margin-right:10px;padding-right:10px}.govuk-summary-list__actions-list-item:not(:last-child){border-right:1px solid #b1b4b6}.govuk-summary-list__actions-list-item:last-child{margin-right:0;padding-right:0;border:0}}@media (min-width: 40.0625em){.govuk-summary-list__actions-list-item{margin-left:10px;padding-left:10px}.govuk-summary-list__actions-list-item:not(:first-child){border-left:1px solid #b1b4b6}.govuk-summary-list__actions-list-item:first-child{margin-left:0;padding-left:0;border:0}}.govuk-summary-list--no-border .govuk-summary-list__row{border:0}@media (min-width: 40.0625em){.govuk-summary-list--no-border .govuk-summary-list__key,.govuk-summary-list--no-border .govuk-summary-list__value,.govuk-summary-list--no-border .govuk-summary-list__actions{padding-bottom:11px}}.govuk-summary-list__row--no-border{border:0}@media (min-width: 40.0625em){.govuk-summary-list__row--no-border .govuk-summary-list__key,.govuk-summary-list__row--no-border .govuk-summary-list__value,.govuk-summary-list__row--no-border .govuk-summary-list__actions{padding-bottom:11px}}.govuk-summary-card{margin-bottom:20px;border:1px solid #b1b4b6}@media (min-width: 40.0625em){.govuk-summary-card{margin-bottom:30px}}.govuk-summary-card__title-wrapper{padding:15px;border-bottom:1px solid transparent;background-color:#f3f2f1}@media (min-width: 40.0625em){.govuk-summary-card__title-wrapper{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-wrap:nowrap;flex-wrap:nowrap;padding:15px 20px}}.govuk-summary-card__title{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:700;font-size:16px;font-size:1rem;line-height:1.25;margin:5px 20px 10px 0}@media print{.govuk-summary-card__title{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-summary-card__title{font-size:19px;font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-summary-card__title{font-size:14pt;line-height:1.15}}@media (min-width: 40.0625em){.govuk-summary-card__title{margin-bottom:5px}}.govuk-summary-card__actions{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:700;font-size:16px;font-size:1rem;line-height:1.25;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;row-gap:10px;margin:5px 0;padding:0;list-style:none}@media print{.govuk-summary-card__actions{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-summary-card__actions{font-size:19px;font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-summary-card__actions{font-size:14pt;line-height:1.15}}@media (min-width: 40.0625em){.govuk-summary-card__actions{-ms-flex-pack:right;justify-content:right;text-align:right}}.govuk-summary-card__action{display:inline;margin:0 10px 0 0;padding-right:10px;border-right:1px solid #b1b4b6}@media (min-width: 40.0625em){.govuk-summary-card__action{margin-right:0}}@media screen and (-ms-high-contrast: active),(-ms-high-contrast: none){.govuk-summary-card__action{margin-bottom:5px}}.govuk-summary-card__action:last-child{margin:0;padding-right:0;border-right:none}@media (min-width: 40.0625em){.govuk-summary-card__action:last-child{padding-left:10px}}@media screen and (-ms-high-contrast: active),(-ms-high-contrast: none){.govuk-summary-card__action:last-child{margin-bottom:0}}.govuk-summary-card__content{padding:15px 15px 0}@media (min-width: 40.0625em){.govuk-summary-card__content{padding:15px 20px}}.govuk-summary-card__content .govuk-summary-list{margin-bottom:0}.govuk-summary-card__content .govuk-summary-list__row:last-of-type{margin-bottom:0;border-bottom:none}.govuk-table{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:16px;font-size:1rem;line-height:1.25;color:#0b0c0c;width:100%;margin-bottom:20px;border-spacing:0;border-collapse:collapse}@media print{.govuk-table{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-table{font-size:19px;font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-table{font-size:14pt;line-height:1.15}}@media print{.govuk-table{color:#000}}@media (min-width: 40.0625em){.govuk-table{margin-bottom:30px}}.govuk-table__header{font-weight:700}.govuk-table__header,.govuk-table__cell{padding:10px 20px 10px 0;border-bottom:1px solid #b1b4b6;text-align:left;vertical-align:top}.govuk-table__cell--numeric{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-font-feature-settings:"tnum" 1;font-feature-settings:"tnum" 1;font-weight:400}@media print{.govuk-table__cell--numeric{font-family:sans-serif}}@supports (font-variant-numeric: tabular-nums){.govuk-table__cell--numeric{-webkit-font-feature-settings:normal;font-feature-settings:normal;font-variant-numeric:tabular-nums}}.govuk-table__header--numeric,.govuk-table__cell--numeric{text-align:right}.govuk-table__header:last-child,.govuk-table__cell:last-child{padding-right:0}.govuk-table__caption{font-weight:700;display:table-caption;text-align:left}.govuk-table__caption--xl{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:700;font-size:32px;font-size:2rem;line-height:1.09375;margin-bottom:15px}@media print{.govuk-table__caption--xl{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-table__caption--xl{font-size:48px;font-size:3rem;line-height:1.0416666667}}@media print{.govuk-table__caption--xl{font-size:32pt;line-height:1.15}}.govuk-table__caption--l{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:700;font-size:24px;font-size:1.5rem;line-height:1.0416666667;margin-bottom:15px}@media print{.govuk-table__caption--l{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-table__caption--l{font-size:36px;font-size:2.25rem;line-height:1.1111111111}}@media print{.govuk-table__caption--l{font-size:24pt;line-height:1.05}}.govuk-table__caption--m{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:700;font-size:18px;font-size:1.125rem;line-height:1.1111111111;margin-bottom:15px}@media print{.govuk-table__caption--m{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-table__caption--m{font-size:24px;font-size:1.5rem;line-height:1.25}}@media print{.govuk-table__caption--m{font-size:18pt;line-height:1.15}}.govuk-table__caption--s{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:700;font-size:16px;font-size:1rem;line-height:1.25}@media print{.govuk-table__caption--s{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-table__caption--s{font-size:19px;font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-table__caption--s{font-size:14pt;line-height:1.15}}.govuk-warning-text{position:relative;margin-bottom:20px;padding:10px 0}@media (min-width: 40.0625em){.govuk-warning-text{margin-bottom:30px}}.govuk-warning-text__assistive{position:absolute!important;width:1px!important;height:1px!important;margin:0!important;padding:0!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;-webkit-clip-path:inset(50%)!important;clip-path:inset(50%)!important;border:0!important;white-space:nowrap!important}.govuk-warning-text__assistive:before{content:"\a0"}.govuk-warning-text__assistive:after{content:"\a0"}.govuk-warning-text__icon{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:700;box-sizing:border-box;display:inline-block;position:absolute;left:0;min-width:35px;min-height:35px;margin-top:-7px;border:3px solid #0b0c0c;border-radius:50%;color:#fff;background:#0b0c0c;font-size:30px;line-height:29px;text-align:center;-webkit-user-select:none;-ms-user-select:none;-moz-user-select:-moz-none;user-select:none;forced-color-adjust:none}@media print{.govuk-warning-text__icon{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-warning-text__icon{margin-top:-5px}}@media screen and (forced-colors: active){.govuk-warning-text__icon{border-color:windowText;color:windowText;background:transparent}}.govuk-warning-text__text{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:700;font-size:16px;font-size:1rem;line-height:1.25;color:#0b0c0c;display:block;padding-left:45px}@media print{.govuk-warning-text__text{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-warning-text__text{font-size:19px;font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-warning-text__text{font-size:14pt;line-height:1.15}}@media print{.govuk-warning-text__text{color:#000}}.govuk-clearfix:after{content:"";display:block;clear:both}.govuk-visually-hidden{position:absolute!important;width:1px!important;height:1px!important;margin:0!important;padding:0!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;-webkit-clip-path:inset(50%)!important;clip-path:inset(50%)!important;border:0!important;white-space:nowrap!important}.govuk-visually-hidden:before{content:"\a0"}.govuk-visually-hidden:after{content:"\a0"}.govuk-visually-hidden-focusable{position:absolute!important;width:1px!important;height:1px!important;margin:0!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;-webkit-clip-path:inset(50%)!important;clip-path:inset(50%)!important;white-space:nowrap!important}.govuk-visually-hidden-focusable:active,.govuk-visually-hidden-focusable:focus{position:static!important;width:auto!important;height:auto!important;margin:inherit!important;overflow:visible!important;clip:auto!important;-webkit-clip-path:none!important;clip-path:none!important;white-space:inherit!important}.govuk-\!-display-inline{display:inline!important}.govuk-\!-display-inline-block{display:inline-block!important}.govuk-\!-display-block{display:block!important}.govuk-\!-display-none{display:none!important}@media print{.govuk-\!-display-none-print{display:none!important}}.govuk-\!-margin-0{margin:0!important}.govuk-\!-margin-top-0{margin-top:0!important}.govuk-\!-margin-right-0{margin-right:0!important}.govuk-\!-margin-bottom-0{margin-bottom:0!important}.govuk-\!-margin-left-0{margin-left:0!important}.govuk-\!-margin-1{margin:5px!important}.govuk-\!-margin-top-1{margin-top:5px!important}.govuk-\!-margin-right-1{margin-right:5px!important}.govuk-\!-margin-bottom-1{margin-bottom:5px!important}.govuk-\!-margin-left-1{margin-left:5px!important}.govuk-\!-margin-2{margin:10px!important}.govuk-\!-margin-top-2{margin-top:10px!important}.govuk-\!-margin-right-2{margin-right:10px!important}.govuk-\!-margin-bottom-2{margin-bottom:10px!important}.govuk-\!-margin-left-2{margin-left:10px!important}.govuk-\!-margin-3{margin:15px!important}.govuk-\!-margin-top-3{margin-top:15px!important}.govuk-\!-margin-right-3{margin-right:15px!important}.govuk-\!-margin-bottom-3{margin-bottom:15px!important}.govuk-\!-margin-left-3{margin-left:15px!important}.govuk-\!-margin-4{margin:15px!important}@media (min-width: 40.0625em){.govuk-\!-margin-4{margin:20px!important}}.govuk-\!-margin-top-4{margin-top:15px!important}@media (min-width: 40.0625em){.govuk-\!-margin-top-4{margin-top:20px!important}}.govuk-\!-margin-right-4{margin-right:15px!important}@media (min-width: 40.0625em){.govuk-\!-margin-right-4{margin-right:20px!important}}.govuk-\!-margin-bottom-4{margin-bottom:15px!important}@media (min-width: 40.0625em){.govuk-\!-margin-bottom-4{margin-bottom:20px!important}}.govuk-\!-margin-left-4{margin-left:15px!important}@media (min-width: 40.0625em){.govuk-\!-margin-left-4{margin-left:20px!important}}.govuk-\!-margin-5{margin:15px!important}@media (min-width: 40.0625em){.govuk-\!-margin-5{margin:25px!important}}.govuk-\!-margin-top-5{margin-top:15px!important}@media (min-width: 40.0625em){.govuk-\!-margin-top-5{margin-top:25px!important}}.govuk-\!-margin-right-5{margin-right:15px!important}@media (min-width: 40.0625em){.govuk-\!-margin-right-5{margin-right:25px!important}}.govuk-\!-margin-bottom-5{margin-bottom:15px!important}@media (min-width: 40.0625em){.govuk-\!-margin-bottom-5{margin-bottom:25px!important}}.govuk-\!-margin-left-5{margin-left:15px!important}@media (min-width: 40.0625em){.govuk-\!-margin-left-5{margin-left:25px!important}}.govuk-\!-margin-6{margin:20px!important}@media (min-width: 40.0625em){.govuk-\!-margin-6{margin:30px!important}}.govuk-\!-margin-top-6{margin-top:20px!important}@media (min-width: 40.0625em){.govuk-\!-margin-top-6{margin-top:30px!important}}.govuk-\!-margin-right-6{margin-right:20px!important}@media (min-width: 40.0625em){.govuk-\!-margin-right-6{margin-right:30px!important}}.govuk-\!-margin-bottom-6{margin-bottom:20px!important}@media (min-width: 40.0625em){.govuk-\!-margin-bottom-6{margin-bottom:30px!important}}.govuk-\!-margin-left-6{margin-left:20px!important}@media (min-width: 40.0625em){.govuk-\!-margin-left-6{margin-left:30px!important}}.govuk-\!-margin-7{margin:25px!important}@media (min-width: 40.0625em){.govuk-\!-margin-7{margin:40px!important}}.govuk-\!-margin-top-7{margin-top:25px!important}@media (min-width: 40.0625em){.govuk-\!-margin-top-7{margin-top:40px!important}}.govuk-\!-margin-right-7{margin-right:25px!important}@media (min-width: 40.0625em){.govuk-\!-margin-right-7{margin-right:40px!important}}.govuk-\!-margin-bottom-7{margin-bottom:25px!important}@media (min-width: 40.0625em){.govuk-\!-margin-bottom-7{margin-bottom:40px!important}}.govuk-\!-margin-left-7{margin-left:25px!important}@media (min-width: 40.0625em){.govuk-\!-margin-left-7{margin-left:40px!important}}.govuk-\!-margin-8{margin:30px!important}@media (min-width: 40.0625em){.govuk-\!-margin-8{margin:50px!important}}.govuk-\!-margin-top-8{margin-top:30px!important}@media (min-width: 40.0625em){.govuk-\!-margin-top-8{margin-top:50px!important}}.govuk-\!-margin-right-8{margin-right:30px!important}@media (min-width: 40.0625em){.govuk-\!-margin-right-8{margin-right:50px!important}}.govuk-\!-margin-bottom-8{margin-bottom:30px!important}@media (min-width: 40.0625em){.govuk-\!-margin-bottom-8{margin-bottom:50px!important}}.govuk-\!-margin-left-8{margin-left:30px!important}@media (min-width: 40.0625em){.govuk-\!-margin-left-8{margin-left:50px!important}}.govuk-\!-margin-9{margin:40px!important}@media (min-width: 40.0625em){.govuk-\!-margin-9{margin:60px!important}}.govuk-\!-margin-top-9{margin-top:40px!important}@media (min-width: 40.0625em){.govuk-\!-margin-top-9{margin-top:60px!important}}.govuk-\!-margin-right-9{margin-right:40px!important}@media (min-width: 40.0625em){.govuk-\!-margin-right-9{margin-right:60px!important}}.govuk-\!-margin-bottom-9{margin-bottom:40px!important}@media (min-width: 40.0625em){.govuk-\!-margin-bottom-9{margin-bottom:60px!important}}.govuk-\!-margin-left-9{margin-left:40px!important}@media (min-width: 40.0625em){.govuk-\!-margin-left-9{margin-left:60px!important}}.govuk-\!-padding-0{padding:0!important}.govuk-\!-padding-top-0{padding-top:0!important}.govuk-\!-padding-right-0{padding-right:0!important}.govuk-\!-padding-bottom-0{padding-bottom:0!important}.govuk-\!-padding-left-0{padding-left:0!important}.govuk-\!-padding-1{padding:5px!important}.govuk-\!-padding-top-1{padding-top:5px!important}.govuk-\!-padding-right-1{padding-right:5px!important}.govuk-\!-padding-bottom-1{padding-bottom:5px!important}.govuk-\!-padding-left-1{padding-left:5px!important}.govuk-\!-padding-2{padding:10px!important}.govuk-\!-padding-top-2{padding-top:10px!important}.govuk-\!-padding-right-2{padding-right:10px!important}.govuk-\!-padding-bottom-2{padding-bottom:10px!important}.govuk-\!-padding-left-2{padding-left:10px!important}.govuk-\!-padding-3{padding:15px!important}.govuk-\!-padding-top-3{padding-top:15px!important}.govuk-\!-padding-right-3{padding-right:15px!important}.govuk-\!-padding-bottom-3{padding-bottom:15px!important}.govuk-\!-padding-left-3{padding-left:15px!important}.govuk-\!-padding-4{padding:15px!important}@media (min-width: 40.0625em){.govuk-\!-padding-4{padding:20px!important}}.govuk-\!-padding-top-4{padding-top:15px!important}@media (min-width: 40.0625em){.govuk-\!-padding-top-4{padding-top:20px!important}}.govuk-\!-padding-right-4{padding-right:15px!important}@media (min-width: 40.0625em){.govuk-\!-padding-right-4{padding-right:20px!important}}.govuk-\!-padding-bottom-4{padding-bottom:15px!important}@media (min-width: 40.0625em){.govuk-\!-padding-bottom-4{padding-bottom:20px!important}}.govuk-\!-padding-left-4{padding-left:15px!important}@media (min-width: 40.0625em){.govuk-\!-padding-left-4{padding-left:20px!important}}.govuk-\!-padding-5{padding:15px!important}@media (min-width: 40.0625em){.govuk-\!-padding-5{padding:25px!important}}.govuk-\!-padding-top-5{padding-top:15px!important}@media (min-width: 40.0625em){.govuk-\!-padding-top-5{padding-top:25px!important}}.govuk-\!-padding-right-5{padding-right:15px!important}@media (min-width: 40.0625em){.govuk-\!-padding-right-5{padding-right:25px!important}}.govuk-\!-padding-bottom-5{padding-bottom:15px!important}@media (min-width: 40.0625em){.govuk-\!-padding-bottom-5{padding-bottom:25px!important}}.govuk-\!-padding-left-5{padding-left:15px!important}@media (min-width: 40.0625em){.govuk-\!-padding-left-5{padding-left:25px!important}}.govuk-\!-padding-6{padding:20px!important}@media (min-width: 40.0625em){.govuk-\!-padding-6{padding:30px!important}}.govuk-\!-padding-top-6{padding-top:20px!important}@media (min-width: 40.0625em){.govuk-\!-padding-top-6{padding-top:30px!important}}.govuk-\!-padding-right-6{padding-right:20px!important}@media (min-width: 40.0625em){.govuk-\!-padding-right-6{padding-right:30px!important}}.govuk-\!-padding-bottom-6{padding-bottom:20px!important}@media (min-width: 40.0625em){.govuk-\!-padding-bottom-6{padding-bottom:30px!important}}.govuk-\!-padding-left-6{padding-left:20px!important}@media (min-width: 40.0625em){.govuk-\!-padding-left-6{padding-left:30px!important}}.govuk-\!-padding-7{padding:25px!important}@media (min-width: 40.0625em){.govuk-\!-padding-7{padding:40px!important}}.govuk-\!-padding-top-7{padding-top:25px!important}@media (min-width: 40.0625em){.govuk-\!-padding-top-7{padding-top:40px!important}}.govuk-\!-padding-right-7{padding-right:25px!important}@media (min-width: 40.0625em){.govuk-\!-padding-right-7{padding-right:40px!important}}.govuk-\!-padding-bottom-7{padding-bottom:25px!important}@media (min-width: 40.0625em){.govuk-\!-padding-bottom-7{padding-bottom:40px!important}}.govuk-\!-padding-left-7{padding-left:25px!important}@media (min-width: 40.0625em){.govuk-\!-padding-left-7{padding-left:40px!important}}.govuk-\!-padding-8{padding:30px!important}@media (min-width: 40.0625em){.govuk-\!-padding-8{padding:50px!important}}.govuk-\!-padding-top-8{padding-top:30px!important}@media (min-width: 40.0625em){.govuk-\!-padding-top-8{padding-top:50px!important}}.govuk-\!-padding-right-8{padding-right:30px!important}@media (min-width: 40.0625em){.govuk-\!-padding-right-8{padding-right:50px!important}}.govuk-\!-padding-bottom-8{padding-bottom:30px!important}@media (min-width: 40.0625em){.govuk-\!-padding-bottom-8{padding-bottom:50px!important}}.govuk-\!-padding-left-8{padding-left:30px!important}@media (min-width: 40.0625em){.govuk-\!-padding-left-8{padding-left:50px!important}}.govuk-\!-padding-9{padding:40px!important}@media (min-width: 40.0625em){.govuk-\!-padding-9{padding:60px!important}}.govuk-\!-padding-top-9{padding-top:40px!important}@media (min-width: 40.0625em){.govuk-\!-padding-top-9{padding-top:60px!important}}.govuk-\!-padding-right-9{padding-right:40px!important}@media (min-width: 40.0625em){.govuk-\!-padding-right-9{padding-right:60px!important}}.govuk-\!-padding-bottom-9{padding-bottom:40px!important}@media (min-width: 40.0625em){.govuk-\!-padding-bottom-9{padding-bottom:60px!important}}.govuk-\!-padding-left-9{padding-left:40px!important}@media (min-width: 40.0625em){.govuk-\!-padding-left-9{padding-left:60px!important}}.govuk-\!-margin-static-0,.govuk-\!-static-margin-0{margin:0!important}.govuk-\!-margin-top-static-0,.govuk-\!-static-margin-top-0{margin-top:0!important}.govuk-\!-margin-right-static-0,.govuk-\!-static-margin-right-0{margin-right:0!important}.govuk-\!-margin-bottom-static-0,.govuk-\!-static-margin-bottom-0{margin-bottom:0!important}.govuk-\!-margin-left-static-0,.govuk-\!-static-margin-left-0{margin-left:0!important}.govuk-\!-margin-static-1,.govuk-\!-static-margin-1{margin:5px!important}.govuk-\!-margin-top-static-1,.govuk-\!-static-margin-top-1{margin-top:5px!important}.govuk-\!-margin-right-static-1,.govuk-\!-static-margin-right-1{margin-right:5px!important}.govuk-\!-margin-bottom-static-1,.govuk-\!-static-margin-bottom-1{margin-bottom:5px!important}.govuk-\!-margin-left-static-1,.govuk-\!-static-margin-left-1{margin-left:5px!important}.govuk-\!-margin-static-2,.govuk-\!-static-margin-2{margin:10px!important}.govuk-\!-margin-top-static-2,.govuk-\!-static-margin-top-2{margin-top:10px!important}.govuk-\!-margin-right-static-2,.govuk-\!-static-margin-right-2{margin-right:10px!important}.govuk-\!-margin-bottom-static-2,.govuk-\!-static-margin-bottom-2{margin-bottom:10px!important}.govuk-\!-margin-left-static-2,.govuk-\!-static-margin-left-2{margin-left:10px!important}.govuk-\!-margin-static-3,.govuk-\!-static-margin-3{margin:15px!important}.govuk-\!-margin-top-static-3,.govuk-\!-static-margin-top-3{margin-top:15px!important}.govuk-\!-margin-right-static-3,.govuk-\!-static-margin-right-3{margin-right:15px!important}.govuk-\!-margin-bottom-static-3,.govuk-\!-static-margin-bottom-3{margin-bottom:15px!important}.govuk-\!-margin-left-static-3,.govuk-\!-static-margin-left-3{margin-left:15px!important}.govuk-\!-margin-static-4,.govuk-\!-static-margin-4{margin:20px!important}.govuk-\!-margin-top-static-4,.govuk-\!-static-margin-top-4{margin-top:20px!important}.govuk-\!-margin-right-static-4,.govuk-\!-static-margin-right-4{margin-right:20px!important}.govuk-\!-margin-bottom-static-4,.govuk-\!-static-margin-bottom-4{margin-bottom:20px!important}.govuk-\!-margin-left-static-4,.govuk-\!-static-margin-left-4{margin-left:20px!important}.govuk-\!-margin-static-5,.govuk-\!-static-margin-5{margin:25px!important}.govuk-\!-margin-top-static-5,.govuk-\!-static-margin-top-5{margin-top:25px!important}.govuk-\!-margin-right-static-5,.govuk-\!-static-margin-right-5{margin-right:25px!important}.govuk-\!-margin-bottom-static-5,.govuk-\!-static-margin-bottom-5{margin-bottom:25px!important}.govuk-\!-margin-left-static-5,.govuk-\!-static-margin-left-5{margin-left:25px!important}.govuk-\!-margin-static-6,.govuk-\!-static-margin-6{margin:30px!important}.govuk-\!-margin-top-static-6,.govuk-\!-static-margin-top-6{margin-top:30px!important}.govuk-\!-margin-right-static-6,.govuk-\!-static-margin-right-6{margin-right:30px!important}.govuk-\!-margin-bottom-static-6,.govuk-\!-static-margin-bottom-6{margin-bottom:30px!important}.govuk-\!-margin-left-static-6,.govuk-\!-static-margin-left-6{margin-left:30px!important}.govuk-\!-margin-static-7,.govuk-\!-static-margin-7{margin:40px!important}.govuk-\!-margin-top-static-7,.govuk-\!-static-margin-top-7{margin-top:40px!important}.govuk-\!-margin-right-static-7,.govuk-\!-static-margin-right-7{margin-right:40px!important}.govuk-\!-margin-bottom-static-7,.govuk-\!-static-margin-bottom-7{margin-bottom:40px!important}.govuk-\!-margin-left-static-7,.govuk-\!-static-margin-left-7{margin-left:40px!important}.govuk-\!-margin-static-8,.govuk-\!-static-margin-8{margin:50px!important}.govuk-\!-margin-top-static-8,.govuk-\!-static-margin-top-8{margin-top:50px!important}.govuk-\!-margin-right-static-8,.govuk-\!-static-margin-right-8{margin-right:50px!important}.govuk-\!-margin-bottom-static-8,.govuk-\!-static-margin-bottom-8{margin-bottom:50px!important}.govuk-\!-margin-left-static-8,.govuk-\!-static-margin-left-8{margin-left:50px!important}.govuk-\!-margin-static-9,.govuk-\!-static-margin-9{margin:60px!important}.govuk-\!-margin-top-static-9,.govuk-\!-static-margin-top-9{margin-top:60px!important}.govuk-\!-margin-right-static-9,.govuk-\!-static-margin-right-9{margin-right:60px!important}.govuk-\!-margin-bottom-static-9,.govuk-\!-static-margin-bottom-9{margin-bottom:60px!important}.govuk-\!-margin-left-static-9,.govuk-\!-static-margin-left-9{margin-left:60px!important}.govuk-\!-padding-static-0,.govuk-\!-static-padding-0{padding:0!important}.govuk-\!-padding-top-static-0,.govuk-\!-static-padding-top-0{padding-top:0!important}.govuk-\!-padding-right-static-0,.govuk-\!-static-padding-right-0{padding-right:0!important}.govuk-\!-padding-bottom-static-0,.govuk-\!-static-padding-bottom-0{padding-bottom:0!important}.govuk-\!-padding-left-static-0,.govuk-\!-static-padding-left-0{padding-left:0!important}.govuk-\!-padding-static-1,.govuk-\!-static-padding-1{padding:5px!important}.govuk-\!-padding-top-static-1,.govuk-\!-static-padding-top-1{padding-top:5px!important}.govuk-\!-padding-right-static-1,.govuk-\!-static-padding-right-1{padding-right:5px!important}.govuk-\!-padding-bottom-static-1,.govuk-\!-static-padding-bottom-1{padding-bottom:5px!important}.govuk-\!-padding-left-static-1,.govuk-\!-static-padding-left-1{padding-left:5px!important}.govuk-\!-padding-static-2,.govuk-\!-static-padding-2{padding:10px!important}.govuk-\!-padding-top-static-2,.govuk-\!-static-padding-top-2{padding-top:10px!important}.govuk-\!-padding-right-static-2,.govuk-\!-static-padding-right-2{padding-right:10px!important}.govuk-\!-padding-bottom-static-2,.govuk-\!-static-padding-bottom-2{padding-bottom:10px!important}.govuk-\!-padding-left-static-2,.govuk-\!-static-padding-left-2{padding-left:10px!important}.govuk-\!-padding-static-3,.govuk-\!-static-padding-3{padding:15px!important}.govuk-\!-padding-top-static-3,.govuk-\!-static-padding-top-3{padding-top:15px!important}.govuk-\!-padding-right-static-3,.govuk-\!-static-padding-right-3{padding-right:15px!important}.govuk-\!-padding-bottom-static-3,.govuk-\!-static-padding-bottom-3{padding-bottom:15px!important}.govuk-\!-padding-left-static-3,.govuk-\!-static-padding-left-3{padding-left:15px!important}.govuk-\!-padding-static-4,.govuk-\!-static-padding-4{padding:20px!important}.govuk-\!-padding-top-static-4,.govuk-\!-static-padding-top-4{padding-top:20px!important}.govuk-\!-padding-right-static-4,.govuk-\!-static-padding-right-4{padding-right:20px!important}.govuk-\!-padding-bottom-static-4,.govuk-\!-static-padding-bottom-4{padding-bottom:20px!important}.govuk-\!-padding-left-static-4,.govuk-\!-static-padding-left-4{padding-left:20px!important}.govuk-\!-padding-static-5,.govuk-\!-static-padding-5{padding:25px!important}.govuk-\!-padding-top-static-5,.govuk-\!-static-padding-top-5{padding-top:25px!important}.govuk-\!-padding-right-static-5,.govuk-\!-static-padding-right-5{padding-right:25px!important}.govuk-\!-padding-bottom-static-5,.govuk-\!-static-padding-bottom-5{padding-bottom:25px!important}.govuk-\!-padding-left-static-5,.govuk-\!-static-padding-left-5{padding-left:25px!important}.govuk-\!-padding-static-6,.govuk-\!-static-padding-6{padding:30px!important}.govuk-\!-padding-top-static-6,.govuk-\!-static-padding-top-6{padding-top:30px!important}.govuk-\!-padding-right-static-6,.govuk-\!-static-padding-right-6{padding-right:30px!important}.govuk-\!-padding-bottom-static-6,.govuk-\!-static-padding-bottom-6{padding-bottom:30px!important}.govuk-\!-padding-left-static-6,.govuk-\!-static-padding-left-6{padding-left:30px!important}.govuk-\!-padding-static-7,.govuk-\!-static-padding-7{padding:40px!important}.govuk-\!-padding-top-static-7,.govuk-\!-static-padding-top-7{padding-top:40px!important}.govuk-\!-padding-right-static-7,.govuk-\!-static-padding-right-7{padding-right:40px!important}.govuk-\!-padding-bottom-static-7,.govuk-\!-static-padding-bottom-7{padding-bottom:40px!important}.govuk-\!-padding-left-static-7,.govuk-\!-static-padding-left-7{padding-left:40px!important}.govuk-\!-padding-static-8,.govuk-\!-static-padding-8{padding:50px!important}.govuk-\!-padding-top-static-8,.govuk-\!-static-padding-top-8{padding-top:50px!important}.govuk-\!-padding-right-static-8,.govuk-\!-static-padding-right-8{padding-right:50px!important}.govuk-\!-padding-bottom-static-8,.govuk-\!-static-padding-bottom-8{padding-bottom:50px!important}.govuk-\!-padding-left-static-8,.govuk-\!-static-padding-left-8{padding-left:50px!important}.govuk-\!-padding-static-9,.govuk-\!-static-padding-9{padding:60px!important}.govuk-\!-padding-top-static-9,.govuk-\!-static-padding-top-9{padding-top:60px!important}.govuk-\!-padding-right-static-9,.govuk-\!-static-padding-right-9{padding-right:60px!important}.govuk-\!-padding-bottom-static-9,.govuk-\!-static-padding-bottom-9{padding-bottom:60px!important}.govuk-\!-padding-left-static-9,.govuk-\!-static-padding-left-9{padding-left:60px!important}.govuk-\!-text-align-left{text-align:left!important}.govuk-\!-text-align-centre{text-align:center!important}.govuk-\!-text-align-right{text-align:right!important}.govuk-\!-font-size-80{font-size:53px!important;font-size:3.3125rem!important;line-height:1.0377358491!important}@media (min-width: 40.0625em){.govuk-\!-font-size-80{font-size:80px!important;font-size:5rem!important;line-height:1!important}}@media print{.govuk-\!-font-size-80{font-size:53pt!important;line-height:1.1!important}}.govuk-\!-font-size-48{font-size:32px!important;font-size:2rem!important;line-height:1.09375!important}@media (min-width: 40.0625em){.govuk-\!-font-size-48{font-size:48px!important;font-size:3rem!important;line-height:1.0416666667!important}}@media print{.govuk-\!-font-size-48{font-size:32pt!important;line-height:1.15!important}}.govuk-\!-font-size-36{font-size:24px!important;font-size:1.5rem!important;line-height:1.0416666667!important}@media (min-width: 40.0625em){.govuk-\!-font-size-36{font-size:36px!important;font-size:2.25rem!important;line-height:1.1111111111!important}}@media print{.govuk-\!-font-size-36{font-size:24pt!important;line-height:1.05!important}}.govuk-\!-font-size-27{font-size:18px!important;font-size:1.125rem!important;line-height:1.1111111111!important}@media (min-width: 40.0625em){.govuk-\!-font-size-27{font-size:27px!important;font-size:1.6875rem!important;line-height:1.1111111111!important}}@media print{.govuk-\!-font-size-27{font-size:18pt!important;line-height:1.15!important}}.govuk-\!-font-size-24{font-size:18px!important;font-size:1.125rem!important;line-height:1.1111111111!important}@media (min-width: 40.0625em){.govuk-\!-font-size-24{font-size:24px!important;font-size:1.5rem!important;line-height:1.25!important}}@media print{.govuk-\!-font-size-24{font-size:18pt!important;line-height:1.15!important}}.govuk-\!-font-size-19{font-size:16px!important;font-size:1rem!important;line-height:1.25!important}@media (min-width: 40.0625em){.govuk-\!-font-size-19{font-size:19px!important;font-size:1.1875rem!important;line-height:1.3157894737!important}}@media print{.govuk-\!-font-size-19{font-size:14pt!important;line-height:1.15!important}}.govuk-\!-font-size-16{font-size:14px!important;font-size:.875rem!important;line-height:1.1428571429!important}@media (min-width: 40.0625em){.govuk-\!-font-size-16{font-size:16px!important;font-size:1rem!important;line-height:1.25!important}}@media print{.govuk-\!-font-size-16{font-size:14pt!important;line-height:1.2!important}}.govuk-\!-font-size-14{font-size:12px!important;font-size:.75rem!important;line-height:1.25!important}@media (min-width: 40.0625em){.govuk-\!-font-size-14{font-size:14px!important;font-size:.875rem!important;line-height:1.4285714286!important}}@media print{.govuk-\!-font-size-14{font-size:12pt!important;line-height:1.2!important}}.govuk-\!-font-weight-regular{font-weight:400!important}.govuk-\!-font-weight-bold{font-weight:700!important}.govuk-\!-width-full,.govuk-\!-width-three-quarters{width:100%!important}@media (min-width: 40.0625em){.govuk-\!-width-three-quarters{width:75%!important}}.govuk-\!-width-two-thirds{width:100%!important}@media (min-width: 40.0625em){.govuk-\!-width-two-thirds{width:66.66%!important}}.govuk-\!-width-one-half{width:100%!important}@media (min-width: 40.0625em){.govuk-\!-width-one-half{width:50%!important}}.govuk-\!-width-one-third{width:100%!important}@media (min-width: 40.0625em){.govuk-\!-width-one-third{width:33.33%!important}}.govuk-\!-width-one-quarter{width:100%!important}@media (min-width: 40.0625em){.govuk-\!-width-one-quarter{width:25%!important}}button,input,select,textarea{font-family:inherit}html{background-color:#fff;overflow-y:scroll;font-family:BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",Sans-serif}body{background-color:#fff;color:#0b0c0c;font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;line-height:1.33333;margin:0;min-height:100%}table{margin-bottom:40px;border-spacing:0;vertical-align:top;width:100%}@media (min-width: 40.0625em){table{margin-bottom:48px}}@media print{table{page-break-inside:avoid}}thead th{border-bottom:2px solid #f3f2f1}th,td{font-size:16px;font-size:1;line-height:1.33333;padding-bottom:8px;padding-right:16px;padding-top:8px;border-bottom:1px solid #f3f2f1;text-align:left;vertical-align:top}@media (min-width: 40.0625em){th,td{font-size:19px;font-size:1.1875;line-height:1.33333}}@media print{th,td{font-size:14pt;line-height:1.15}}@media (min-width: 40.0625em){th,td{padding-bottom:16px}}@media (min-width: 40.0625em){th,td{padding-right:24px}}@media (min-width: 40.0625em){th,td{padding-top:16px}}th:last-child,td:last-child{padding-right:0}th{font-weight:700}caption{font-weight:700;font-size:18px;font-size:1.125;line-height:1.33333;text-align:left}@media (min-width: 40.0625em){caption{font-size:22px;font-size:1.375;line-height:1.33333}}@media print{caption{font-size:18pt;line-height:1.15}}.dfe-form-group{margin-bottom:16px}@media (min-width: 40.0625em){.dfe-form-group{margin-bottom:24px}}.dfe-form-group .dfe-form-group:last-of-type{margin-bottom:0}.dfe-form-group--wrapper{margin-bottom:24px}@media (min-width: 40.0625em){.dfe-form-group--wrapper{margin-bottom:32px}}.dfe-form-group--error{border-left:4px solid #d4351c;padding-left:16px}.dfe-form-group--error .dfe-form-group{border:0;padding:0}.dfe-grid-row{margin-left:-16px;margin-right:-16px}.dfe-grid-row:after{clear:both;content:"";display:block}.dfe-grid-column-one-quarter{box-sizing:border-box;padding:0 16px}@media (min-width: 48.0625em){.dfe-grid-column-one-quarter{float:left;width:25%}}.dfe-grid-column-one-third{box-sizing:border-box;padding:0 16px}@media (min-width: 48.0625em){.dfe-grid-column-one-third{float:left;width:33.3333%}}.dfe-grid-column-one-half{box-sizing:border-box;padding:0 16px}@media (min-width: 48.0625em){.dfe-grid-column-one-half{float:left;width:50%}}.dfe-grid-column-two-thirds{box-sizing:border-box;padding:0 16px}@media (min-width: 48.0625em){.dfe-grid-column-two-thirds{float:left;width:66.6666%}}.dfe-grid-column-three-quarters{box-sizing:border-box;padding:0 16px}@media (min-width: 48.0625em){.dfe-grid-column-three-quarters{float:left;width:75%}}.dfe-grid-column-full{box-sizing:border-box;padding:0 16px}@media (min-width: 48.0625em){.dfe-grid-column-full{float:left;width:100%}}.dfe-main-wrapper{padding-top:40px;padding-bottom:40px;display:block}@media (min-width: 40.0625em){.dfe-main-wrapper{padding-top:48px}}@media (min-width: 40.0625em){.dfe-main-wrapper{padding-bottom:48px}}.dfe-main-wrapper>*:first-child{margin-top:0}.dfe-main-wrapper>*:last-child{margin-bottom:0}.dfe-main-wrapper--l{padding-top:48px}@media (min-width: 40.0625em){.dfe-main-wrapper--l{padding-top:56px}}.dfe-main-wrapper--s{padding-bottom:24px;padding-top:24px}@media (min-width: 40.0625em){.dfe-main-wrapper--s{padding-bottom:32px}}@media (min-width: 40.0625em){.dfe-main-wrapper--s{padding-top:32px}}.dfe-width-container{margin:0 16px;max-width:1200px}@media (min-width: 48.0625em){.dfe-width-container{margin:0 32px}}@media (min-width: 1264px){.dfe-width-container{margin:0 auto}}.dfe-width-container-fluid{margin:0 16px;max-width:100%}@media (min-width: 48.0625em){.dfe-width-container-fluid{margin:0 32px}}.dfe-icon{height:34px;width:34px}.dfe-icon__search,.dfe-icon__chevron-left,.dfe-icon__chevron-right,.dfe-icon__close{fill:#003a69}.dfe-icon__cross{fill:#d4351c}.dfe-icon__tick{stroke:#00703c}.dfe-icon__arrow-right,.dfe-icon__arrow-left{fill:#003a69}.dfe-icon__arrow-right-circle{fill:#00703c}.dfe-icon__chevron-down{fill:#003a69;-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);-webkit-transform:rotate(180deg);transform:rotate(180deg)}.dfe-icon__chevron-down path{fill:#fff}.dfe-icon__chevron-up{fill:#003a69}.dfe-icon__chevron-up path{fill:#fff}.dfe-icon__emdash path{fill:#aeb7bd}.dfe-icon__plus,.dfe-icon__minus{fill:#003a69}.dfe-icon--size-25{height:42.5px;width:42.5px}.dfe-icon--size-50{height:51px;width:51px}.dfe-icon--size-75{height:59.5px;width:59.5px}.dfe-icon--size-100{height:68px;width:68px}ol,ul,.dfe-list{font-size:16px;font-size:1;line-height:1.33333;margin-bottom:16px;list-style-type:none;margin-top:0;padding-left:0}@media (min-width: 40.0625em){ol,ul,.dfe-list{font-size:19px;font-size:1.1875;line-height:1.33333}}@media print{ol,ul,.dfe-list{font-size:14pt;line-height:1.15}}@media (min-width: 40.0625em){ol,ul,.dfe-list{margin-bottom:24px}}ol>li,ul>li,.dfe-list>li{margin-bottom:8px}@media (min-width: 40.0625em){ol>li,ul>li,.dfe-list>li{margin-bottom:8px}}ol>li:last-child,ul>li:last-child,.dfe-list>li:last-child{margin-bottom:0}ul,.dfe-list--bullet{list-style-type:disc;padding-left:20px}ol,.dfe-list--number{list-style-type:decimal;padding-left:20px}.dfe-list--tick,.dfe-list--cross{list-style:none;margin-top:0;padding-left:40px;position:relative}.dfe-list--tick svg,.dfe-list--cross svg{left:-4px;margin-top:-5px;position:absolute}h1,.dfe-heading-xl,.govuk-heading-xl{font-size:32px;font-size:2;line-height:1.33333;display:block;font-weight:700;margin-top:0;margin-bottom:40px}@media (min-width: 40.0625em){h1,.dfe-heading-xl,.govuk-heading-xl{font-size:48px;font-size:3;line-height:1.33333}}@media print{h1,.dfe-heading-xl,.govuk-heading-xl{font-size:32pt;line-height:1.15}}@media (min-width: 40.0625em){h1,.dfe-heading-xl,.govuk-heading-xl{margin-bottom:48px}}h2,.dfe-heading-l,.govuk-heading-l{font-size:24px;font-size:1.5;line-height:1.33333;display:block;font-weight:700;margin-top:0;margin-bottom:16px}@media (min-width: 40.0625em){h2,.dfe-heading-l,.govuk-heading-l{font-size:32px;font-size:2;line-height:1.33333}}@media print{h2,.dfe-heading-l,.govuk-heading-l{font-size:24pt;line-height:1.05}}@media (min-width: 40.0625em){h2,.dfe-heading-l,.govuk-heading-l{margin-bottom:24px}}h3,.dfe-heading-m,.govuk-heading-m{font-size:20px;font-size:1.25;line-height:1.33333;display:block;font-weight:700;margin-top:0;margin-bottom:16px}@media (min-width: 40.0625em){h3,.dfe-heading-m,.govuk-heading-m{font-size:24px;font-size:1.5;line-height:1.33333}}@media print{h3,.dfe-heading-m,.govuk-heading-m{font-size:18pt;line-height:1.15}}@media (min-width: 40.0625em){h3,.dfe-heading-m,.govuk-heading-m{margin-bottom:24px}}h4,.dfe-heading-s,.govuk-heading-s{font-size:18px;font-size:1.125;line-height:1.33333;display:block;font-weight:700;margin-top:0;margin-bottom:16px}@media (min-width: 40.0625em){h4,.dfe-heading-s,.govuk-heading-s{font-size:22px;font-size:1.375;line-height:1.33333}}@media print{h4,.dfe-heading-s,.govuk-heading-s{font-size:18pt;line-height:1.15}}@media (min-width: 40.0625em){h4,.dfe-heading-s,.govuk-heading-s{margin-bottom:24px}}h5,.dfe-heading-xs{font-size:16px;font-size:1;line-height:1.33333;display:block;font-weight:700;margin-top:0;margin-bottom:16px}@media (min-width: 40.0625em){h5,.dfe-heading-xs{font-size:19px;font-size:1.1875;line-height:1.33333}}@media print{h5,.dfe-heading-xs{font-size:14pt;line-height:1.15}}@media (min-width: 40.0625em){h5,.dfe-heading-xs{margin-bottom:24px}}h6,.dfe-heading-xxs{font-size:16px;font-size:1;line-height:1.33333;display:block;font-weight:700;margin-top:0;margin-bottom:16px}@media (min-width: 40.0625em){h6,.dfe-heading-xxs{font-size:19px;font-size:1.1875;line-height:1.33333}}@media print{h6,.dfe-heading-xxs{font-size:14pt;line-height:1.15}}@media (min-width: 40.0625em){h6,.dfe-heading-xxs{margin-bottom:24px}}.dfe-caption-xl{font-weight:400;font-size:24px;font-size:1.5;line-height:1.33333;color:#505a5f;display:block;margin-bottom:4px}@media (min-width: 40.0625em){.dfe-caption-xl{font-size:32px;font-size:2;line-height:1.33333}}@media print{.dfe-caption-xl{font-size:24pt;line-height:1.05}}.dfe-caption-l{font-weight:400;font-size:20px;font-size:1.25;line-height:1.33333;color:#505a5f;display:block;margin-bottom:4px}@media (min-width: 40.0625em){.dfe-caption-l{font-size:24px;font-size:1.5;line-height:1.33333}}@media print{.dfe-caption-l{font-size:18pt;line-height:1.15}}.dfe-caption-m{font-weight:400;font-size:16px;font-size:1;line-height:1.33333;color:#505a5f;display:block}@media (min-width: 40.0625em){.dfe-caption-m{font-size:19px;font-size:1.1875;line-height:1.33333}}@media print{.dfe-caption-m{font-size:14pt;line-height:1.15}}.dfe-caption--bottom{margin-bottom:0;margin-top:4px}.dfe-body-l{font-size:20px;font-size:1.25;line-height:1.33333;display:block;margin-top:0;margin-bottom:24px}@media (min-width: 40.0625em){.dfe-body-l{font-size:24px;font-size:1.5;line-height:1.33333}}@media print{.dfe-body-l{font-size:18pt;line-height:1.15}}@media (min-width: 40.0625em){.dfe-body-l{margin-bottom:32px}}address,p,.dfe-body-m{font-size:16px;font-size:1;line-height:1.33333;display:block;margin-top:0;margin-bottom:16px}@media (min-width: 40.0625em){address,p,.dfe-body-m{font-size:19px;font-size:1.1875;line-height:1.33333}}@media print{address,p,.dfe-body-m{font-size:14pt;line-height:1.15}}@media (min-width: 40.0625em){address,p,.dfe-body-m{margin-bottom:24px}}p,.dfe-body-m{color:inherit}.dfe-body-s{font-size:14px;font-size:.875;line-height:1.33333;display:block;margin-top:0;margin-bottom:16px}@media (min-width: 40.0625em){.dfe-body-s{font-size:16px;font-size:1;line-height:1.33333}}@media print{.dfe-body-s{font-size:14pt;line-height:1.2}}@media (min-width: 40.0625em){.dfe-body-s{margin-bottom:24px}}address{font-style:normal}.dfe-lede-text{font-weight:400;font-size:20px;font-size:1.25;line-height:1.33333;margin-bottom:40px}@media (min-width: 40.0625em){.dfe-lede-text{font-size:24px;font-size:1.5;line-height:1.33333}}@media print{.dfe-lede-text{font-size:18pt;line-height:1.15}}@media (min-width: 40.0625em){.dfe-lede-text{margin-bottom:48px}}.dfe-lede-text p,.dfe-lede-text ul{font-weight:400;font-size:20px;font-size:1.25;line-height:1.33333}@media (min-width: 40.0625em){.dfe-lede-text p,.dfe-lede-text ul{font-size:24px;font-size:1.5;line-height:1.33333}}@media print{.dfe-lede-text p,.dfe-lede-text ul{font-size:18pt;line-height:1.15}}.dfe-lede-text--small{font-weight:400;font-size:16px;font-size:1;line-height:1.33333;margin-bottom:24px}@media (min-width: 40.0625em){.dfe-lede-text--small{font-size:19px;font-size:1.1875;line-height:1.33333}}@media print{.dfe-lede-text--small{font-size:14pt;line-height:1.15}}@media (min-width: 40.0625em){.dfe-lede-text--small{margin-bottom:32px}}h1+.dfe-lede-text,h1+.dfe-lede-text--small{margin-top:-8px}.dfe-body-l+h2,.dfe-body-l+.dfe-heading-l,.dfe-body-l+.govuk-heading-l{padding-top:4px}@media (min-width: 40.0625em){.dfe-body-l+h2,.dfe-body-l+.dfe-heading-l,.dfe-body-l+.govuk-heading-l{padding-top:8px}}p+h2,.dfe-body-m+h2,address+h2,p+.dfe-heading-l,.dfe-body-m+.dfe-heading-l,address+.dfe-heading-l,p+.govuk-heading-l,.dfe-body-m+.govuk-heading-l,address+.govuk-heading-l,.dfe-body-s+h2,.dfe-body-s+.dfe-heading-l,.dfe-body-s+.govuk-heading-l,.dfe-list+h2,ul+h2,ol+h2,.dfe-list+.dfe-heading-l,ul+.dfe-heading-l,ol+.dfe-heading-l,.dfe-list+.govuk-heading-l,ul+.govuk-heading-l,ol+.govuk-heading-l{padding-top:16px}@media (min-width: 40.0625em){p+h2,.dfe-body-m+h2,address+h2,p+.dfe-heading-l,.dfe-body-m+.dfe-heading-l,address+.dfe-heading-l,p+.govuk-heading-l,.dfe-body-m+.govuk-heading-l,address+.govuk-heading-l,.dfe-body-s+h2,.dfe-body-s+.dfe-heading-l,.dfe-body-s+.govuk-heading-l,.dfe-list+h2,ul+h2,ol+h2,.dfe-list+.dfe-heading-l,ul+.dfe-heading-l,ol+.dfe-heading-l,.dfe-list+.govuk-heading-l,ul+.govuk-heading-l,ol+.govuk-heading-l{padding-top:24px}}p+h3,.dfe-body-m+h3,address+h3,p+.dfe-heading-m,.dfe-body-m+.dfe-heading-m,address+.dfe-heading-m,p+.govuk-heading-m,.dfe-body-m+.govuk-heading-m,address+.govuk-heading-m,.dfe-body-s+h3,.dfe-body-s+.dfe-heading-m,.dfe-body-s+.govuk-heading-m,.dfe-list+h3,ul+h3,ol+h3,.dfe-list+.dfe-heading-m,ul+.dfe-heading-m,ol+.dfe-heading-m,.dfe-list+.govuk-heading-m,ul+.govuk-heading-m,ol+.govuk-heading-m,p+h4,.dfe-body-m+h4,address+h4,p+.dfe-heading-s,.dfe-body-m+.dfe-heading-s,address+.dfe-heading-s,p+.govuk-heading-s,.dfe-body-m+.govuk-heading-s,address+.govuk-heading-s,.dfe-body-s+h4,.dfe-body-s+.dfe-heading-s,.dfe-body-s+.govuk-heading-s,.dfe-list+h4,ul+h4,ol+h4,.dfe-list+.dfe-heading-s,ul+.dfe-heading-s,ol+.dfe-heading-s,.dfe-list+.govuk-heading-s,ul+.govuk-heading-s,ol+.govuk-heading-s{padding-top:4px}@media (min-width: 40.0625em){p+h3,.dfe-body-m+h3,address+h3,p+.dfe-heading-m,.dfe-body-m+.dfe-heading-m,address+.dfe-heading-m,p+.govuk-heading-m,.dfe-body-m+.govuk-heading-m,address+.govuk-heading-m,.dfe-body-s+h3,.dfe-body-s+.dfe-heading-m,.dfe-body-s+.govuk-heading-m,.dfe-list+h3,ul+h3,ol+h3,.dfe-list+.dfe-heading-m,ul+.dfe-heading-m,ol+.dfe-heading-m,.dfe-list+.govuk-heading-m,ul+.govuk-heading-m,ol+.govuk-heading-m,p+h4,.dfe-body-m+h4,address+h4,p+.dfe-heading-s,.dfe-body-m+.dfe-heading-s,address+.dfe-heading-s,p+.govuk-heading-s,.dfe-body-m+.govuk-heading-s,address+.govuk-heading-s,.dfe-body-s+h4,.dfe-body-s+.dfe-heading-s,.dfe-body-s+.govuk-heading-s,.dfe-list+h4,ul+h4,ol+h4,.dfe-list+.dfe-heading-s,ul+.dfe-heading-s,ol+.dfe-heading-s,.dfe-list+.govuk-heading-s,ul+.govuk-heading-s,ol+.govuk-heading-s{padding-top:8px}}.dfe-lede-text+h2,.dfe-lede-text+.dfe-heading-l,.dfe-lede-text+.govuk-heading-l{padding-top:0}strong,b{font-weight:700}.dfe-u-font-size-64{font-size:48px!important;font-size:3!important;line-height:1.33333!important}@media (min-width: 40.0625em){.dfe-u-font-size-64{font-size:64px!important;font-size:4!important;line-height:1.33333!important}}@media print{.dfe-u-font-size-64{font-size:53pt!important;line-height:1.1!important}}.dfe-u-font-size-48{font-size:32px!important;font-size:2!important;line-height:1.33333!important}@media (min-width: 40.0625em){.dfe-u-font-size-48{font-size:48px!important;font-size:3!important;line-height:1.33333!important}}@media print{.dfe-u-font-size-48{font-size:32pt!important;line-height:1.15!important}}.dfe-u-font-size-32{font-size:24px!important;font-size:1.5!important;line-height:1.33333!important}@media (min-width: 40.0625em){.dfe-u-font-size-32{font-size:32px!important;font-size:2!important;line-height:1.33333!important}}@media print{.dfe-u-font-size-32{font-size:24pt!important;line-height:1.05!important}}.dfe-u-font-size-24{font-size:20px!important;font-size:1.25!important;line-height:1.33333!important}@media (min-width: 40.0625em){.dfe-u-font-size-24{font-size:24px!important;font-size:1.5!important;line-height:1.33333!important}}@media print{.dfe-u-font-size-24{font-size:18pt!important;line-height:1.15!important}}.dfe-u-font-size-22{font-size:18px!important;font-size:1.125!important;line-height:1.33333!important}@media (min-width: 40.0625em){.dfe-u-font-size-22{font-size:22px!important;font-size:1.375!important;line-height:1.33333!important}}@media print{.dfe-u-font-size-22{font-size:18pt!important;line-height:1.15!important}}.dfe-u-font-size-19{font-size:16px!important;font-size:1!important;line-height:1.33333!important}@media (min-width: 40.0625em){.dfe-u-font-size-19{font-size:19px!important;font-size:1.1875!important;line-height:1.33333!important}}@media print{.dfe-u-font-size-19{font-size:14pt!important;line-height:1.15!important}}.dfe-u-font-size-16{font-size:14px!important;font-size:.875!important;line-height:1.33333!important}@media (min-width: 40.0625em){.dfe-u-font-size-16{font-size:16px!important;font-size:1!important;line-height:1.33333!important}}@media print{.dfe-u-font-size-16{font-size:14pt!important;line-height:1.2!important}}.dfe-u-font-size-14{font-size:12px!important;font-size:.75!important;line-height:1.33333!important}@media (min-width: 40.0625em){.dfe-u-font-size-14{font-size:14px!important;font-size:.875!important;line-height:1.33333!important}}@media print{.dfe-u-font-size-14{font-size:12pt!important;line-height:1.2!important}}.dfe-u-font-weight-normal{font-weight:400!important}.dfe-u-font-weight-bold{font-weight:700!important}.dfe-u-secondary-text-color{color:#505a5f!important}p,.govuk-body{max-width:44em}.dfe-header{background-color:#003a69;border-bottom:10px solid #347ca9}.dfe-header:after{clear:both;content:"";display:block}.dfe-header__container{padding:20px 0}.dfe-header__container:after{clear:both;content:"";display:block}@media (max-width: 40.0525em){.dfe-header__container{margin:0;padding:16px}}.dfe-header__logo{float:left}@media (max-width: 40.0525em){.dfe-header__logo{position:relative;z-index:1}}.dfe-header__logo .dfe-logo__background{fill:#fff}@media print{.dfe-header__logo .dfe-logo__background{fill:#003a69}}.dfe-header__logo .dfe-logo__text{fill:#003a69}@media print{.dfe-header__logo .dfe-logo__text{fill:#fff}}@media (min-width: 40.0625em){.dfe-header__logo{padding-left:0}}.dfe-header__logo .dfe-logo{height:90px;width:153px;border:0}@media (max-width: 48.0525em){.dfe-header__logo{max-width:60%}}@media (max-width: 450px){.dfe-header__logo{max-width:50%}}.dfe-header__link{height:90px;width:153px;display:block}.dfe-header__link .dfe-logo-hover{display:none}.dfe-header__link .dfe-logo{width:136px!important;height:80px!important}.dfe-header__link:focus .dfe-logo-hover{display:none}.dfe-header__link:focus .dfe-logo{display:none}.dfe-header__link:focus .dfe-logo+.dfe-logo-hover{display:inline-block;width:136px!important;height:80px!important}.dfe-header__link:focus{box-shadow:none}.dfe-header__link:focus .dfe-logo{box-shadow:0 0 0 4px #fd0,0 4px 0 4px #0b0c0c}@media print{.dfe-header__link:after{content:""}}.dfe-header__link:hover,.dfe-header__link:active,.dfe-header__link:focus{background-color:transparent}.dfe-header__content{position:relative}.dfe-header__content:after{clear:both;content:"";display:block}@media print{.dfe-header__content{display:none}}.dfe-header__content.js-show{border-bottom:4px solid #f0f4f5}@media (min-width: 40.0625em){.dfe-header__content{float:right}.dfe-header__content.js-show{border-bottom:0}}.dfe-header__action-links{display:flex;gap:20px;justify-content:flex-end;margin-bottom:10px}.dfe-header__action-links li{list-style:none;color:#fff;font-size:16px}.dfe-header__search{position:relative;text-align:right}.dfe-header__search:after{clear:both;content:"";display:block}@media (min-width: 40.0625em){.dfe-header__search{float:left;margin-left:8px}}.dfe-header__search-toggle{background-color:transparent;border:1px solid #ffffff;border-radius:4px;color:#fff;cursor:pointer;min-height:40px;padding:4px 8px 0;position:absolute;right:0;top:0}.dfe-header__search-toggle::-moz-focus-inner{border:0}.dfe-header__search-toggle:hover{background-color:#002644;border-color:#f0f4f5;box-shadow:none}.dfe-header__search-toggle:focus{border:1px solid #ffdd00!important}.dfe-header__search-toggle:active,.dfe-header__search-toggle.is-active{background-color:#001d35;border-color:#f0f4f5;color:#f0f4f5}.dfe-header__search-toggle .dfe-icon__search{fill:#fff;height:21px;width:21px}.dfe-header__search-toggle:focus{background-color:#fd0;border:0;box-shadow:0 4px #0b0c0c;color:#0b0c0c;outline:4px solid transparent;outline-offset:4px;box-shadow:0 0 0 2px #fd0,0 4px 0 2px #0b0c0c}.dfe-header__search-toggle:focus .dfe-icon{fill:#0b0c0c}@media (min-width: 40.0625em){.dfe-header__search-toggle{display:none}}.dfe-header__search-form{height:100%;overflow:visible}@media (max-width: 40.0525em){.dfe-header__search-form{background-color:#fff;display:flex;padding:16px;width:100%}}@media (max-width: 40.0525em){.dfe-header__search-wrap{display:none}.dfe-header__search-wrap.js-show{clear:both;display:flex;margin-bottom:-20px;margin-left:-16px;margin-right:-16px;padding-top:16px;text-align:left}}@media (min-width: 40.0625em){.dfe-header__search-wrap{display:block;line-height:0}}.dfe-search__input{-webkit-appearance:listbox;border-radius:4px 0 0 4px;padding:0 16px}.dfe-search__input:focus{border:4px solid #0b0c0c;box-shadow:0 0 0 4px #fd0;outline:4px solid transparent;outline-offset:4px;padding:0 9px}.dfe-search__input::placeholder{color:#505a5f;font-size:16px}.dfe-search__input:-ms-input-placeholder{color:#505a5f;font-size:16px}.dfe-search__input::-webkit-input-placeholder{color:#505a5f;font-size:16px}@media (max-width: 40.0525em){.dfe-search__input{border-bottom:1px solid #aeb7bd;border-left:1px solid #aeb7bd;border-right:0;border-top:1px solid #aeb7bd;flex-grow:2;-ms-flex-positive:2;font-size:inherit;height:52px;margin:0;outline:none;width:100%;z-index:1}}@media (min-width: 40.0625em){.dfe-search__input{border:1px solid #ffffff;font-size:16px;height:40px;width:200px}}@media (min-width: 48.0625em){.dfe-search__input{width:235px}}.dfe-search__submit{border:0;border-radius:0 4px 4px 0;float:right;font-size:inherit;line-height:inherit;outline:none;padding:0}.dfe-search__submit::-moz-focus-inner{border:0}.dfe-search__submit:hover{cursor:pointer}@media (max-width: 40.0525em){.dfe-search__submit{background-color:#003a69;height:52px;margin:0;padding:8px 8px 0}.dfe-search__submit .dfe-icon__search{fill:#fff;height:38px;width:38px}.dfe-search__submit:hover{background-color:#002644}.dfe-search__submit:focus{background-color:#fd0;box-shadow:0 -4px #fd0,0 4px #0b0c0c;outline:4px solid transparent;outline-offset:4px}.dfe-search__submit:focus:hover{background-color:#fd0}.dfe-search__submit:focus:hover .dfe-icon{fill:#0b0c0c}.dfe-search__submit:focus .dfe-icon{fill:#0b0c0c}}@media (min-width: 40.0625em){.dfe-search__submit{background-color:#f0f4f5;display:block;height:40px;width:44px}.dfe-search__submit .dfe-icon__search{height:27px;width:27px}.dfe-search__submit:hover{background-color:#002644;border:1px solid #ffffff}.dfe-search__submit:hover .dfe-icon__search{fill:#fff}.dfe-search__submit:focus{background-color:#fd0;border:0;box-shadow:0 4px #0b0c0c;color:#0b0c0c;outline:4px solid transparent;outline-offset:4px;box-shadow:0 -2px #fd0,0 4px #0b0c0c}.dfe-search__submit:focus .dfe-icon{fill:#0b0c0c}.dfe-search__submit:active{background-color:#001d35;border:0}.dfe-search__submit:active .dfe-icon__search{fill:#fff}}@media (max-width: 40.0525em){.dfe-search__close{background-color:transparent;border:0;cursor:pointer;height:40px;padding:0;width:40px;margin-left:8px;margin-right:-8px;margin-top:8px}.dfe-search__close .dfe-icon__close{fill:#003a69;height:40px;width:40px}.dfe-search__close::-moz-focus-inner{border:0}.dfe-search__close:hover .dfe-icon__close{fill:#40484c}.dfe-search__close:focus{background-color:#fd0;box-shadow:0 -2px #fd0,0 4px #0b0c0c;color:#0b0c0c;outline:4px solid transparent;text-decoration:none}.dfe-search__close:focus .dfe-icon__close{fill:#0b0c0c}}@media (min-width: 40.0625em){.dfe-search__close{display:none}}.dfe-search__input--withdropdown{border-bottom-left-radius:0}.dfe-search__submit--withdropdown{border-bottom-right-radius:0}.dfe-header__menu{float:right}@media (min-width: 40.0625em){.dfe-header__menu{float:left}}.dfe-header__menu-toggle{background-color:transparent;border:1px solid #ffffff;border-radius:4px;color:#fff;cursor:pointer;display:block;font-size:16px;font-weight:400;line-height:24px;margin-right:0;padding:7px 16px;position:relative;text-decoration:none;z-index:1}.dfe-header__menu-toggle::-moz-focus-inner{border:0}.dfe-header__menu-toggle:hover{background-color:#002644;border-color:#f0f4f5;box-shadow:none}.dfe-header__menu-toggle:focus{border:1px solid #ffdd00!important}.dfe-header__menu-toggle:active,.dfe-header__menu-toggle.is-active{background-color:#001d35;border-color:#f0f4f5;color:#f0f4f5}@media (max-width: 40.0525em){.dfe-header__menu-toggle{right:48px}}@media (min-width: 40.0625em) and (max-width: 61.865em){.dfe-header__menu-toggle{margin-top:0}}@media (min-width: 61.875em){.dfe-header__menu-toggle{display:none}}.dfe-header__menu-toggle:focus{background-color:#fd0;border:0;box-shadow:0 4px #0b0c0c;color:#0b0c0c;outline:4px solid transparent;outline-offset:4px;box-shadow:0 0 0 2px #fd0,0 4px 0 2px #0b0c0c}.dfe-header__menu-toggle:focus .dfe-icon{fill:#0b0c0c}@media (max-width: 40.0525em){.dfe-header__menu--only .dfe-header__menu-toggle{position:relative;right:auto;top:auto}}.dfe-header__navigation{background-color:#fff;clear:both;display:none;overflow:hidden}@media print{.dfe-header__navigation{display:none}}.dfe-header__navigation.js-show{display:block}@media (max-width: 61.865em){.dfe-header__navigation.js-show{border-bottom:4px solid #f0f4f5;border-top:4px solid #f0f4f5}.dfe-header__navigation.js-show .dfe-width-container{margin:0 16px}}@media (max-width: 48.0525em){.dfe-header__navigation.js-show .dfe-width-container{margin:0}}@media (min-width: 61.875em){.dfe-header__navigation{background-color:#003a69;display:block;margin:0 auto;max-width:1264px}}.dfe-header__navigation-title{font-weight:700;margin-bottom:0;padding:16px;position:relative}@media (min-width: 61.875em){.dfe-header__navigation-title{display:none}}.dfe-header__navigation-close{background-color:transparent;border:0;cursor:pointer;height:40px;padding:0;width:40px;overflow:hidden;position:absolute;right:8px;top:8px;white-space:nowrap}.dfe-header__navigation-close .dfe-icon__close{fill:#003a69;height:40px;width:40px}.dfe-header__navigation-close::-moz-focus-inner{border:0}.dfe-header__navigation-close:hover .dfe-icon__close{fill:#40484c}.dfe-header__navigation-close:focus{background-color:#fd0;box-shadow:0 -2px #fd0,0 4px #0b0c0c;color:#0b0c0c;outline:4px solid transparent;text-decoration:none}.dfe-header__navigation-close:focus .dfe-icon__close{fill:#0b0c0c}.dfe-header__navigation-list{list-style:none;margin:0;padding-left:0}@media (min-width: 61.875em){.dfe-header__navigation-list{border-top:1px solid rgba(255,255,255,.2);display:flex;justify-content:flex-start;padding:0;width:100%}}.dfe-header__navigation-item{border-top:1px solid #f0f4f5;margin-bottom:0;position:relative}.dfe-header__navigation-item.dfe-header__navigation-item--current{box-shadow:inset 0 52px #347ca9!important}.dfe-header__navigation-item.dfe-header__navigation-item--current a{font-weight:700;color:#fff}@media (min-width: 61.875em){.dfe-header__navigation-item{border-top:0;margin:0;text-align:center}.dfe-header__navigation-item a{color:#fff}.dfe-header__navigation-item .dfe-icon__chevron-right{display:none}}.dfe-header__navigation-link{font-weight:400;font-size:14px;font-size:.875;line-height:1.33333;border-bottom:4px solid transparent;border-top:4px solid transparent;color:#003a69;display:block;padding:12px 15px;text-decoration:none}@media (min-width: 40.0625em){.dfe-header__navigation-link{font-size:16px;font-size:1;line-height:1.33333}}@media print{.dfe-header__navigation-link{font-size:14pt;line-height:1.2}}@media (min-width: 61.875em){.dfe-header__navigation-link{color:#fff;line-height:normal}}.dfe-header__navigation-link .dfe-icon__chevron-right{fill:#aeb7bd;position:absolute;right:4px;top:11px}.dfe-header__navigation-link:visited{color:#003a69}@media (min-width: 61.875em){.dfe-header__navigation-link:visited{color:#fff}}.dfe-header__navigation-link:hover{box-shadow:none;color:#003a69;text-decoration:underline}@media (min-width: 61.875em){.dfe-header__navigation-link:hover{color:#fff}}.dfe-header__navigation-link:hover .dfe-icon__chevron-right{fill:#003a69}.dfe-header__navigation-link:active,.dfe-header__navigation-link:focus{background-color:#fd0;border-bottom:4px solid #0b0c0c;box-shadow:none;color:#0b0c0c;outline:4px solid transparent;outline-offset:4px;text-decoration:none}.dfe-header__navigation-link:active:hover,.dfe-header__navigation-link:focus:hover{background-color:#fd0;color:#0b0c0c}.dfe-header__navigation-link:active:hover .dfe-icon__chevron-right,.dfe-header__navigation-link:focus:hover .dfe-icon__chevron-right{fill:#0b0c0c}.dfe-header__navigation-link:active:visited,.dfe-header__navigation-link:focus:visited{background-color:#fd0;color:#0b0c0c}@media (min-width: 61.875em){.dfe-header__navigation-item--for-mobile{display:none}}@media (min-width: 61.875em){.dfe-header__navigation-list--small{justify-content:flex-start}}.dfe-header__transactional-service-name{float:left;padding-left:16px;padding-top:3px}@media (max-width: 61.865em){.dfe-header__transactional-service-name{padding-left:0;padding-top:8px;width:100%}}.dfe-header__transactional-service-name--link{color:#fff;font-weight:400;font-size:16px;font-size:1;line-height:1.33333;text-decoration:none}.dfe-header__transactional-service-name--link:visited{color:#fff}.dfe-header__transactional-service-name--link:hover{color:#fff;text-decoration:none}.dfe-header__transactional-service-name--link:focus{color:#0b0c0c;outline:4px solid transparent;outline-offset:4px;text-decoration:none}.dfe-header__transactional-service-name--link:active{color:#001d35}@media (min-width: 40.0625em){.dfe-header__transactional-service-name--link{font-size:19px;font-size:1.1875;line-height:1.33333}}@media print{.dfe-header__transactional-service-name--link{font-size:14pt;line-height:1.15}}.dfe-header__transactional-service-name--link:hover{text-decoration:underline}.dfe-header--transactional .dfe-header__link{height:60px;width:100px;display:block}.dfe-header--transactional .dfe-logo{height:60px;width:100px}.dfe-header--transactional .dfe-header__transactional-service-name{float:left}.dfe-header__link--service{height:auto;margin-top:-4px;text-decoration:none;width:auto}@media (min-width: 61.875em){.dfe-header__link--service{align-items:center;display:flex;-ms-flex-align:center;margin-bottom:0;width:auto}.dfe-header__link--service .dfe-header__service-name{margin-top:61px;font-weight:400;font-size:18px;font-size:1.125;line-height:1.33333;display:block;font-weight:500;letter-spacing:-.2px;line-height:23px;margin-left:12px}}@media (min-width: 61.875em) and (min-width: 40.0625em){.dfe-header__link--service .dfe-header__service-name{font-size:22px;font-size:1.375;line-height:1.33333}}@media print and (min-width: 61.875em){.dfe-header__link--service .dfe-header__service-name{font-size:18pt;line-height:1.15}}.dfe-header__link--service:hover{background:none}.dfe-header__link--service:hover .dfe-header__service-name{text-decoration:underline}.dfe-header__link--service:focus{background:#ffdd00;box-shadow:0 0 0 4px #fd0,0 4px 0 4px #0b0c0c}.dfe-header__link--service:focus .dfe-header__service-name{color:#0b0c0c;text-decoration:none}.dfe-header__link--service:focus .dfe-logo{box-shadow:none}.dfe-header__service-name{font-weight:400;font-size:18px;font-size:1.125;line-height:1.33333;color:#fff;display:block;padding-left:0;padding-right:0}@media (min-width: 40.0625em){.dfe-header__service-name{font-size:22px;font-size:1.375;line-height:1.33333}}@media print{.dfe-header__service-name{font-size:18pt;line-height:1.15}}@media (min-width: 61.875em){.dfe-header__service-name{padding-left:16px}}@media (max-width: 61.865em){.dfe-header__service-name{max-width:220px}}.dfe-header__logo--only{max-width:100%}@media (min-width: 40.0625em){.dfe-header__logo--only .dfe-header__link--service{align-items:center;display:flex;-ms-flex-align:center;margin-bottom:0;width:auto}.dfe-header__logo--only .dfe-header__service-name{padding-left:16px}}.dfeuk-header__username{padding-bottom:20px;margin:0;text-align:right;color:#fff}.dfeuk-header__username a{color:#fff;text-decoration:none}.dfeuk-header__username a:hover{text-decoration:underline}*{font-family:BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif!important}.logo{display:block;max-height:32px;max-width:100%}.govuk-table{margin-top:30px;margin-bottom:30px}@media (min-width: 40.0625em){.govuk-button--start{margin-bottom:0!important}}a.govuk-home-link{position:relative;display:inline-block;margin-top:15px;margin-bottom:15px}.dfe-section-card{padding:16px;margin-bottom:20px;flex:1;background-color:#f3f2f1}.dfe-section-card__container{display:flex;width:100}@media (max-width: 40.0525em){.dfe-section-card__container{display:grid;width:100}}.app-related-items{border-top:2px solid #347ca9;padding-top:10px}.app-related-items .govuk-list>li{margin-bottom:10px}.app-section-beta{padding:30px 0}.app-section-beta__blue{background-color:#347ca9}.body-header-font{color:#fff}.govuk-header{background-color:#003a69}.govuk-header__container{position:relative;margin-bottom:-10px;padding-top:25px;padding-bottom:15px;border-bottom:10px solid #347ca9}.govuk-header__product-name,.govuk-header__logotype-text{line-height:2.5rem!important;font-size:1.2rem}.app-header .govuk-header__logo{width:85%}.app-header .govuk-header__content{width:0}.govuk-header__logotype-crown-fallback-image{height:45px;width:45px}.govuk-header__logotype-text:after{content:"|"}.govuk-header__logotype{margin-right:0}.govuk-header__navigation-item--active a:link,.govuk-header__navigation-item--active a:hover,.govuk-header__navigation-item--active a:visited{color:#f3f2f1;text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:.1em}.edf-hero-banner{margin-top:-10px!important;margin-bottom:40px}@media (max-width: 40.0625em){.govuk-header__product-name{max-width:80%;line-height:1.2rem!important;font-size:1rem}.govuk-header__logotype-text{min-width:100%;line-height:2.2rem!important;font-size:1rem}.edf-hero-banner{margin-top:0!important;margin-bottom:20px}}strong.app-task-list__task-name>p.govuk-error-message{margin-bottom:0}rich-text>p.govuk-body{margin-top:15px;margin-bottom:15px}@media (min-width: 40.0625em){.govuk-body,.govuk-body-m{margin-bottom:10px}h2,.dfe-heading-l,.govuk-heading-l{margin-top:45px}h3,.dfe-heading-s,.govuk-heading-s,.dfe-headin-m{padding-top:10px;margin-top:35px}rich-text>p.govuk-body{margin-top:20px;margin-bottom:20px}}.app-task-list{list-style-type:none;padding-left:0;margin-top:0;margin-bottom:0}@media (min-width: 40.0625em){.app-task-list{min-width:550px}}.app-task-list__section{display:table;font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:700;font-size:18px;font-size:1.125rem;line-height:1.1111111111}@media print{.app-task-list__section{font-family:sans-serif}}@media (min-width: 40.0625em){.app-task-list__section{font-size:24px;font-size:1.5rem;line-height:1.25}}@media print{.app-task-list__section{font-size:18pt;line-height:1.15}}.app-task-list__section-number{display:table-cell}@media (min-width: 40.0625em){.app-task-list__section-number{min-width:30px;padding-right:0}}.app-task-list__items{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:16px;font-size:1rem;line-height:1.25;margin-bottom:40px;list-style:none;padding-left:0}@media print{.app-task-list__items{font-family:sans-serif}}@media (min-width: 40.0625em){.app-task-list__items{font-size:19px;font-size:1.1875rem;line-height:1.3157894737}}@media print{.app-task-list__items{font-size:14pt;line-height:1.15}}@media (min-width: 40.0625em){.app-task-list__items{margin-bottom:60px}}.app-task-list__item{border-bottom:1px solid #b1b4b6;margin-bottom:0!important;padding-top:10px;padding-bottom:10px}.app-task-list__item:after{content:"";display:block;clear:both}.app-task-list__item:first-child{border-top:1px solid #b1b4b6}.app-task-list__task-name{display:block}@media (min-width: 28.125em){.app-task-list__task-name{float:left}}.app-task-list__tag,.app-task-list__task-completed{margin-top:10px;margin-bottom:5px}@media (min-width: 28.125em){.app-task-list__tag,.app-task-list__task-completed{float:right;margin-top:0;margin-bottom:0}}#checkYourAnswers-page .spacer{content:" "!important;display:block!important}@media (min-width: 40.0625em){#checkYourAnswers-page .govuk-summary-list__key{width:100%}#checkYourAnswers-page .govuk-summary-list__actions{width:0}}#checkYourAnswers-page dl.govuk-summary-list.govuk-\!-margin-bottom-9{border-top:1px solid #b1b4b6}#checkYourAnswers-page h3.govuk-body-l{color:gray;margin-bottom:5px}#checkYourAnswers-page .govuk-heading-xl{font-size:2.5rem;margin-bottom:25px} +@charset "UTF-8";:root{--govuk-frontend-version: "5.1.0";--govuk-frontend-breakpoint-mobile: 20rem;--govuk-frontend-breakpoint-tablet: 40.0625rem;--govuk-frontend-breakpoint-desktop: 48.0625rem}.govuk-link{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:underline;text-decoration-thickness:max(1px,.0625rem);text-underline-offset:.1578em}@font-face{font-family:GDS Transport;font-style:normal;font-weight:400;src:url(/assets/fonts/light-94a07e06a1-v2.woff2) format("woff2"),url(/assets/fonts/light-f591b13f7d-v2.woff) format("woff");font-display:fallback}@font-face{font-family:GDS Transport;font-style:normal;font-weight:700;src:url(/assets/fonts/bold-b542beb274-v2.woff2) format("woff2"),url(/assets/fonts/bold-affa96571d-v2.woff) format("woff");font-display:fallback}@media print{.govuk-link{font-family:sans-serif}}.govuk-link:hover{text-decoration-thickness:max(3px,.1875rem,.12em);-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;-webkit-text-decoration-skip:none;text-decoration-skip:none}.govuk-link:focus{outline:3px solid transparent;color:#0b0c0c;background-color:#fd0;box-shadow:0 -2px #fd0,0 4px #0b0c0c;text-decoration:none;-webkit-box-decoration-break:clone;box-decoration-break:clone}.govuk-link:link{color:#1d70b8}.govuk-link:visited{color:#4c2c92}.govuk-link:hover{color:#003078}.govuk-link:active{color:#0b0c0c}.govuk-link:focus{color:#0b0c0c}@media print{[href^="/"].govuk-link:after,[href^="http://"].govuk-link:after,[href^="https://"].govuk-link:after{content:" (" attr(href) ")";font-size:90%;word-wrap:break-word}}.govuk-link--muted:link,.govuk-link--muted:visited{color:#505a5f}.govuk-link--muted:hover,.govuk-link--muted:active{color:#0b0c0c}.govuk-link--muted:focus{color:#0b0c0c}.govuk-link--text-colour:link,.govuk-link--text-colour:visited{color:#0b0c0c}@media print{.govuk-link--text-colour:link,.govuk-link--text-colour:visited{color:#000}}.govuk-link--text-colour:hover{color:rgba(11,12,12,.99)}.govuk-link--text-colour:active,.govuk-link--text-colour:focus{color:#0b0c0c}@media print{.govuk-link--text-colour:active,.govuk-link--text-colour:focus{color:#000}}.govuk-link--inverse:link,.govuk-link--inverse:visited{color:#fff}.govuk-link--inverse:hover,.govuk-link--inverse:active{color:rgba(255,255,255,.99)}.govuk-link--inverse:focus{color:#0b0c0c}.govuk-link--no-underline:not(:hover):not(:active){text-decoration:none}.govuk-link--no-visited-state:link,.govuk-link--no-visited-state:visited{color:#1d70b8}.govuk-link--no-visited-state:hover{color:#003078}.govuk-link--no-visited-state:active{color:#0b0c0c}.govuk-link--no-visited-state:focus{color:#0b0c0c}.govuk-link-image{display:inline-block;line-height:0;text-decoration:none}.govuk-link-image:focus{outline:3px solid transparent;box-shadow:0 0 0 4px #fd0,0 0 0 8px #0b0c0c}.govuk-list{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.25;color:#0b0c0c;margin-top:0;margin-bottom:15px;padding-left:0;list-style-type:none}@media print{.govuk-list{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-list{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-list{font-size:14pt;line-height:1.15}}@media print{.govuk-list{color:#000}}@media (min-width: 40.0625em){.govuk-list{margin-bottom:20px}}.govuk-list .govuk-list{margin-top:10px}.govuk-list>li{margin-bottom:5px}.govuk-list--bullet{padding-left:20px;list-style-type:disc}.govuk-list--number{padding-left:20px;list-style-type:decimal}.govuk-list--bullet>li,.govuk-list--number>li{margin-bottom:0}@media (min-width: 40.0625em){.govuk-list--bullet>li,.govuk-list--number>li{margin-bottom:5px}}.govuk-list--spaced>li{margin-bottom:10px}@media (min-width: 40.0625em){.govuk-list--spaced>li{margin-bottom:15px}}.govuk-heading-xl{color:#0b0c0c;font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:700;font-size:2rem;line-height:1.09375;display:block;margin-top:0;margin-bottom:30px}@media print{.govuk-heading-xl{color:#000}}@media print{.govuk-heading-xl{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-heading-xl{font-size:3rem;line-height:1.0416666667}}@media print{.govuk-heading-xl{font-size:32pt;line-height:1.15}}@media (min-width: 40.0625em){.govuk-heading-xl{margin-bottom:50px}}.govuk-heading-l{color:#0b0c0c;font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:700;font-size:1.5rem;line-height:1.0416666667;display:block;margin-top:0;margin-bottom:20px}@media print{.govuk-heading-l{color:#000}}@media print{.govuk-heading-l{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-heading-l{font-size:2.25rem;line-height:1.1111111111}}@media print{.govuk-heading-l{font-size:24pt;line-height:1.05}}@media (min-width: 40.0625em){.govuk-heading-l{margin-bottom:30px}}.govuk-heading-m{color:#0b0c0c;font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:700;font-size:1.125rem;line-height:1.1111111111;display:block;margin-top:0;margin-bottom:15px}@media print{.govuk-heading-m{color:#000}}@media print{.govuk-heading-m{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-heading-m{font-size:1.5rem;line-height:1.25}}@media print{.govuk-heading-m{font-size:18pt;line-height:1.15}}@media (min-width: 40.0625em){.govuk-heading-m{margin-bottom:20px}}.govuk-heading-s{color:#0b0c0c;font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:700;font-size:1rem;line-height:1.25;display:block;margin-top:0;margin-bottom:15px}@media print{.govuk-heading-s{color:#000}}@media print{.govuk-heading-s{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-heading-s{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-heading-s{font-size:14pt;line-height:1.15}}@media (min-width: 40.0625em){.govuk-heading-s{margin-bottom:20px}}.govuk-caption-xl{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1.125rem;line-height:1.1111111111;display:block;margin-bottom:5px;color:#505a5f}@media print{.govuk-caption-xl{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-caption-xl{font-size:1.6875rem;line-height:1.1111111111}}@media print{.govuk-caption-xl{font-size:18pt;line-height:1.15}}.govuk-caption-l{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1.125rem;line-height:1.1111111111;display:block;margin-bottom:5px;color:#505a5f}@media print{.govuk-caption-l{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-caption-l{font-size:1.5rem;line-height:1.25}}@media print{.govuk-caption-l{font-size:18pt;line-height:1.15}}@media (min-width: 40.0625em){.govuk-caption-l{margin-bottom:0}}.govuk-caption-m{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.25;display:block;color:#505a5f}@media print{.govuk-caption-m{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-caption-m{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-caption-m{font-size:14pt;line-height:1.15}}.govuk-body-lead,.govuk-body-l{color:#0b0c0c;font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1.125rem;line-height:1.1111111111;margin-top:0;margin-bottom:20px}@media print{.govuk-body-lead,.govuk-body-l{color:#000}}@media print{.govuk-body-lead,.govuk-body-l{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-body-lead,.govuk-body-l{font-size:1.5rem;line-height:1.25}}@media print{.govuk-body-lead,.govuk-body-l{font-size:18pt;line-height:1.15}}@media (min-width: 40.0625em){.govuk-body-lead,.govuk-body-l{margin-bottom:30px}}.govuk-body,.govuk-body-m{color:#0b0c0c;font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.25;margin-top:0;margin-bottom:15px}@media print{.govuk-body,.govuk-body-m{color:#000}}@media print{.govuk-body,.govuk-body-m{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-body,.govuk-body-m{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-body,.govuk-body-m{font-size:14pt;line-height:1.15}}@media (min-width: 40.0625em){.govuk-body,.govuk-body-m{margin-bottom:20px}}.govuk-body-s{color:#0b0c0c;font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:.875rem;line-height:1.1428571429;margin-top:0;margin-bottom:15px}@media print{.govuk-body-s{color:#000}}@media print{.govuk-body-s{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-body-s{font-size:1rem;line-height:1.25}}@media print{.govuk-body-s{font-size:14pt;line-height:1.2}}@media (min-width: 40.0625em){.govuk-body-s{margin-bottom:20px}}.govuk-body-xs{color:#0b0c0c;font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:.75rem;line-height:1.25;margin-top:0;margin-bottom:15px}@media print{.govuk-body-xs{color:#000}}@media print{.govuk-body-xs{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-body-xs{font-size:.875rem;line-height:1.4285714286}}@media print{.govuk-body-xs{font-size:12pt;line-height:1.2}}@media (min-width: 40.0625em){.govuk-body-xs{margin-bottom:20px}}.govuk-body-l+.govuk-heading-l,.govuk-body-lead+.govuk-heading-l{padding-top:5px}@media (min-width: 40.0625em){.govuk-body-l+.govuk-heading-l,.govuk-body-lead+.govuk-heading-l{padding-top:10px}}.govuk-body-m+.govuk-heading-l,.govuk-body+.govuk-heading-l,.govuk-body-s+.govuk-heading-l,.govuk-list+.govuk-heading-l{padding-top:15px}@media (min-width: 40.0625em){.govuk-body-m+.govuk-heading-l,.govuk-body+.govuk-heading-l,.govuk-body-s+.govuk-heading-l,.govuk-list+.govuk-heading-l{padding-top:20px}}.govuk-body-m+.govuk-heading-m,.govuk-body+.govuk-heading-m,.govuk-body-s+.govuk-heading-m,.govuk-list+.govuk-heading-m,.govuk-body-m+.govuk-heading-s,.govuk-body+.govuk-heading-s,.govuk-body-s+.govuk-heading-s,.govuk-list+.govuk-heading-s{padding-top:5px}@media (min-width: 40.0625em){.govuk-body-m+.govuk-heading-m,.govuk-body+.govuk-heading-m,.govuk-body-s+.govuk-heading-m,.govuk-list+.govuk-heading-m,.govuk-body-m+.govuk-heading-s,.govuk-body+.govuk-heading-s,.govuk-body-s+.govuk-heading-s,.govuk-list+.govuk-heading-s{padding-top:10px}}.govuk-section-break{margin:0;border:0}.govuk-section-break--xl{margin-top:30px;margin-bottom:30px}@media (min-width: 40.0625em){.govuk-section-break--xl{margin-top:50px}}@media (min-width: 40.0625em){.govuk-section-break--xl{margin-bottom:50px}}.govuk-section-break--l{margin-top:20px;margin-bottom:20px}@media (min-width: 40.0625em){.govuk-section-break--l{margin-top:30px}}@media (min-width: 40.0625em){.govuk-section-break--l{margin-bottom:30px}}.govuk-section-break--m{margin-top:15px;margin-bottom:15px}@media (min-width: 40.0625em){.govuk-section-break--m{margin-top:20px}}@media (min-width: 40.0625em){.govuk-section-break--m{margin-bottom:20px}}.govuk-section-break--visible{border-bottom:1px solid #b1b4b6}.govuk-button-group{margin-bottom:5px;display:flex;flex-direction:column;align-items:center}@media (min-width: 40.0625em){.govuk-button-group{margin-bottom:15px}}.govuk-button-group .govuk-link{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.1875;display:inline-block;max-width:100%;margin-top:5px;margin-bottom:20px;text-align:center}@media print{.govuk-button-group .govuk-link{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-button-group .govuk-link{font-size:1.1875rem;line-height:1}}@media print{.govuk-button-group .govuk-link{font-size:14pt;line-height:19px}}.govuk-button-group .govuk-button{margin-bottom:17px}@media (min-width: 40.0625em){.govuk-button-group{margin-right:-15px;flex-direction:row;flex-wrap:wrap;align-items:baseline}.govuk-button-group .govuk-button,.govuk-button-group .govuk-link{margin-right:15px}.govuk-button-group .govuk-link{text-align:left}}.govuk-form-group{margin-bottom:20px}.govuk-form-group:after{content:"";display:block;clear:both}@media (min-width: 40.0625em){.govuk-form-group{margin-bottom:30px}}.govuk-form-group .govuk-form-group:last-of-type{margin-bottom:0}.govuk-form-group--error{padding-left:15px;border-left:5px solid #d4351c}.govuk-form-group--error .govuk-form-group{padding:0;border:0}.govuk-grid-row{margin-right:-15px;margin-left:-15px}.govuk-grid-row:after{content:"";display:block;clear:both}.govuk-grid-column-one-quarter{box-sizing:border-box;width:100%;padding:0 15px}@media (min-width: 40.0625em){.govuk-grid-column-one-quarter{width:25%;float:left}}.govuk-grid-column-one-third{box-sizing:border-box;width:100%;padding:0 15px}@media (min-width: 40.0625em){.govuk-grid-column-one-third{width:33.3333333333%;float:left}}.govuk-grid-column-one-half{box-sizing:border-box;width:100%;padding:0 15px}@media (min-width: 40.0625em){.govuk-grid-column-one-half{width:50%;float:left}}.govuk-grid-column-two-thirds{box-sizing:border-box;width:100%;padding:0 15px}@media (min-width: 40.0625em){.govuk-grid-column-two-thirds{width:66.6666666667%;float:left}}.govuk-grid-column-three-quarters{box-sizing:border-box;width:100%;padding:0 15px}@media (min-width: 40.0625em){.govuk-grid-column-three-quarters{width:75%;float:left}}.govuk-grid-column-full{box-sizing:border-box;width:100%;padding:0 15px}@media (min-width: 40.0625em){.govuk-grid-column-full{width:100%;float:left}}.govuk-grid-column-one-quarter-from-desktop{box-sizing:border-box;padding:0 15px}@media (min-width: 48.0625em){.govuk-grid-column-one-quarter-from-desktop{width:25%;float:left}}.govuk-grid-column-one-third-from-desktop{box-sizing:border-box;padding:0 15px}@media (min-width: 48.0625em){.govuk-grid-column-one-third-from-desktop{width:33.3333333333%;float:left}}.govuk-grid-column-one-half-from-desktop{box-sizing:border-box;padding:0 15px}@media (min-width: 48.0625em){.govuk-grid-column-one-half-from-desktop{width:50%;float:left}}.govuk-grid-column-two-thirds-from-desktop{box-sizing:border-box;padding:0 15px}@media (min-width: 48.0625em){.govuk-grid-column-two-thirds-from-desktop{width:66.6666666667%;float:left}}.govuk-grid-column-three-quarters-from-desktop{box-sizing:border-box;padding:0 15px}@media (min-width: 48.0625em){.govuk-grid-column-three-quarters-from-desktop{width:75%;float:left}}.govuk-grid-column-full-from-desktop{box-sizing:border-box;padding:0 15px}@media (min-width: 48.0625em){.govuk-grid-column-full-from-desktop{width:100%;float:left}}.govuk-main-wrapper{display:block;padding-top:20px;padding-bottom:20px}@media (min-width: 40.0625em){.govuk-main-wrapper{padding-top:40px;padding-bottom:40px}}.govuk-main-wrapper--auto-spacing:first-child,.govuk-main-wrapper--l{padding-top:30px}@media (min-width: 40.0625em){.govuk-main-wrapper--auto-spacing:first-child,.govuk-main-wrapper--l{padding-top:50px}}.govuk-template{background-color:#f3f2f1;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%}@supports (position: -webkit-sticky) or (position: sticky){.govuk-template{scroll-padding-top:60px}.govuk-template:not(:has(.govuk-exit-this-page)){scroll-padding-top:0}}@media screen{.govuk-template{overflow-y:scroll}}.govuk-template__body{margin:0;background-color:#fff}.govuk-width-container{max-width:960px;margin-right:15px;margin-left:15px}@supports (margin: max(0px)){.govuk-width-container{margin-right:max(15px,calc(15px + env(safe-area-inset-right)));margin-left:max(15px,calc(15px + env(safe-area-inset-left)))}}@media (min-width: 40.0625em){.govuk-width-container{margin-right:30px;margin-left:30px}@supports (margin: max(0px)){.govuk-width-container{margin-right:max(30px,calc(15px + env(safe-area-inset-right)));margin-left:max(30px,calc(15px + env(safe-area-inset-left)))}}}@media (min-width: 1020px){.govuk-width-container{margin-right:auto;margin-left:auto}@supports (margin: max(0px)){.govuk-width-container{margin-right:auto;margin-left:auto}}}.govuk-accordion{margin-bottom:20px}@media (min-width: 40.0625em){.govuk-accordion{margin-bottom:30px}}.govuk-accordion__section{padding-top:15px}.govuk-accordion__section-heading{margin-top:0;margin-bottom:0;padding-top:15px;padding-bottom:15px}.govuk-accordion__section-button{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:700;font-size:1.125rem;line-height:1.1111111111;color:#0b0c0c;display:block;margin-bottom:0;padding-top:15px}@media print{.govuk-accordion__section-button{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-accordion__section-button{font-size:1.5rem;line-height:1.25}}@media print{.govuk-accordion__section-button{font-size:18pt;line-height:1.15}}@media print{.govuk-accordion__section-button{color:#000}}.govuk-accordion__section-content>:last-child{margin-bottom:0}.govuk-frontend-supported .govuk-accordion{border-bottom:1px solid #b1b4b6}.govuk-frontend-supported .govuk-accordion__section{padding-top:0}.govuk-frontend-supported .govuk-accordion__section-content{display:none;padding-top:15px;padding-bottom:30px}@media (min-width: 40.0625em){.govuk-frontend-supported .govuk-accordion__section-content{padding-bottom:50px}}.govuk-frontend-supported .govuk-accordion__section-content[hidden]{padding-top:0;padding-bottom:0}@supports (content-visibility: hidden){.govuk-frontend-supported .govuk-accordion__section-content[hidden]{content-visibility:hidden;display:inherit}}.govuk-frontend-supported .govuk-accordion__section--expanded .govuk-accordion__section-content{display:block}.govuk-frontend-supported .govuk-accordion__show-all{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.25;position:relative;z-index:1;margin-bottom:9px;padding:5px 2px 5px 0;border-width:0;color:#1d70b8;background:none;cursor:pointer;-webkit-appearance:none}@media print{.govuk-frontend-supported .govuk-accordion__show-all{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-frontend-supported .govuk-accordion__show-all{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-frontend-supported .govuk-accordion__show-all{font-size:14pt;line-height:1.15}}@media (min-width: 40.0625em){.govuk-frontend-supported .govuk-accordion__show-all{margin-bottom:14px}}.govuk-frontend-supported .govuk-accordion__show-all::-moz-focus-inner{padding:0;border:0}.govuk-frontend-supported .govuk-accordion__show-all:hover{color:#0b0c0c;background:#f3f2f1;box-shadow:0 -2px #f3f2f1,0 4px #f3f2f1}.govuk-frontend-supported .govuk-accordion__show-all:hover .govuk-accordion__section-toggle-text{color:#0b0c0c}.govuk-frontend-supported .govuk-accordion__show-all:hover .govuk-accordion-nav__chevron{color:#0b0c0c;background:#0b0c0c}.govuk-frontend-supported .govuk-accordion__show-all:hover .govuk-accordion-nav__chevron:after{color:#f3f2f1}.govuk-frontend-supported .govuk-accordion__show-all:focus{outline:3px solid transparent;color:#0b0c0c;background-color:#fd0;box-shadow:0 -2px #fd0,0 4px #0b0c0c;text-decoration:none;-webkit-box-decoration-break:clone;box-decoration-break:clone}.govuk-frontend-supported .govuk-accordion__show-all:focus .govuk-accordion-nav__chevron{background:#0b0c0c}.govuk-frontend-supported .govuk-accordion__show-all:focus .govuk-accordion-nav__chevron:after{color:#fd0}.govuk-frontend-supported .govuk-accordion__section-heading{padding:0}.govuk-frontend-supported .govuk-accordion-nav__chevron{box-sizing:border-box;display:inline-block;position:relative;width:1.25rem;height:1.25rem;border:.0625rem solid;border-radius:50%;vertical-align:middle}.govuk-frontend-supported .govuk-accordion-nav__chevron:after{content:"";box-sizing:border-box;display:block;position:absolute;bottom:.3125rem;left:.375rem;width:.375rem;height:.375rem;transform:rotate(-45deg);border-top:.125rem solid;border-right:.125rem solid}.govuk-frontend-supported .govuk-accordion-nav__chevron--down{transform:rotate(180deg)}.govuk-frontend-supported .govuk-accordion__section-button{width:100%;padding:10px 0 0;border:0;border-top:1px solid #b1b4b6;border-bottom:10px solid transparent;color:#0b0c0c;background:none;text-align:left;cursor:pointer;-webkit-appearance:none}@media (min-width: 40.0625em){.govuk-frontend-supported .govuk-accordion__section-button{padding-bottom:10px}}.govuk-frontend-supported .govuk-accordion__section-button:active{color:#0b0c0c;background:none}.govuk-frontend-supported .govuk-accordion__section-button:hover{color:#0b0c0c;background:#f3f2f1}.govuk-frontend-supported .govuk-accordion__section-button:hover .govuk-accordion__section-toggle-text{color:#0b0c0c}.govuk-frontend-supported .govuk-accordion__section-button:hover .govuk-accordion-nav__chevron{color:#0b0c0c;background:#0b0c0c}.govuk-frontend-supported .govuk-accordion__section-button:hover .govuk-accordion-nav__chevron:after{color:#f3f2f1}.govuk-frontend-supported .govuk-accordion__section-button:focus{outline:0}.govuk-frontend-supported .govuk-accordion__section-button:focus .govuk-accordion__section-heading-text-focus,.govuk-frontend-supported .govuk-accordion__section-button:focus .govuk-accordion__section-summary-focus,.govuk-frontend-supported .govuk-accordion__section-button:focus .govuk-accordion__section-toggle-focus{outline:3px solid transparent;color:#0b0c0c;background-color:#fd0;box-shadow:0 -2px #fd0,0 4px #0b0c0c;text-decoration:none;-webkit-box-decoration-break:clone;box-decoration-break:clone}.govuk-frontend-supported .govuk-accordion__section-button:focus .govuk-accordion-nav__chevron{color:#0b0c0c;background:#0b0c0c}.govuk-frontend-supported .govuk-accordion__section-button:focus .govuk-accordion-nav__chevron:after{color:#fd0}.govuk-frontend-supported .govuk-accordion__section-button::-moz-focus-inner{padding:0;border:0}.govuk-frontend-supported .govuk-accordion__section--expanded .govuk-accordion__section-button{padding-bottom:15px;border-bottom:0}@media (min-width: 40.0625em){.govuk-frontend-supported .govuk-accordion__section--expanded .govuk-accordion__section-button{padding-bottom:20px}}.govuk-frontend-supported .govuk-accordion__section-button:focus .govuk-accordion__section-toggle-focus{padding-bottom:3px}@media (min-width: 48.0625em){.govuk-frontend-supported .govuk-accordion__section-button:focus .govuk-accordion__section-toggle-focus{padding-bottom:2px}}.govuk-frontend-supported .govuk-accordion__section-toggle,.govuk-frontend-supported .govuk-accordion__section-heading-text,.govuk-frontend-supported .govuk-accordion__section-summary{display:block;margin-bottom:13px}.govuk-frontend-supported .govuk-accordion__section-toggle .govuk-accordion__section-heading-text-focus,.govuk-frontend-supported .govuk-accordion__section-toggle .govuk-accordion__section-summary-focus,.govuk-frontend-supported .govuk-accordion__section-toggle .govuk-accordion__section-toggle-focus,.govuk-frontend-supported .govuk-accordion__section-heading-text .govuk-accordion__section-heading-text-focus,.govuk-frontend-supported .govuk-accordion__section-heading-text .govuk-accordion__section-summary-focus,.govuk-frontend-supported .govuk-accordion__section-heading-text .govuk-accordion__section-toggle-focus,.govuk-frontend-supported .govuk-accordion__section-summary .govuk-accordion__section-heading-text-focus,.govuk-frontend-supported .govuk-accordion__section-summary .govuk-accordion__section-summary-focus,.govuk-frontend-supported .govuk-accordion__section-summary .govuk-accordion__section-toggle-focus{display:inline}.govuk-frontend-supported .govuk-accordion__section-toggle{font-size:1rem;line-height:1.25;font-weight:400;color:#1d70b8}@media (min-width: 40.0625em){.govuk-frontend-supported .govuk-accordion__section-toggle{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-frontend-supported .govuk-accordion__section-toggle{font-size:14pt;line-height:1.15}}.govuk-frontend-supported .govuk-accordion__show-all-text,.govuk-frontend-supported .govuk-accordion__section-toggle-text{margin-left:5px;vertical-align:middle}@media screen and (forced-colors: active){.govuk-frontend-supported .govuk-accordion__show-all:hover .govuk-accordion-nav__chevron,.govuk-frontend-supported .govuk-accordion__section-button:hover .govuk-accordion-nav__chevron{background-color:transparent}.govuk-frontend-supported .govuk-accordion__show-all:focus .govuk-accordion__section-heading-text-focus,.govuk-frontend-supported .govuk-accordion__show-all:focus .govuk-accordion__section-summary-focus,.govuk-frontend-supported .govuk-accordion__show-all:focus .govuk-accordion__section-toggle-focus,.govuk-frontend-supported .govuk-accordion__show-all:focus .govuk-accordion-nav__chevron,.govuk-frontend-supported .govuk-accordion__section-button:focus .govuk-accordion__section-heading-text-focus,.govuk-frontend-supported .govuk-accordion__section-button:focus .govuk-accordion__section-summary-focus,.govuk-frontend-supported .govuk-accordion__section-button:focus .govuk-accordion__section-toggle-focus,.govuk-frontend-supported .govuk-accordion__section-button:focus .govuk-accordion-nav__chevron{background:transparent;background-color:transparent}}@media (hover: none){.govuk-frontend-supported .govuk-accordion__section-header:hover{border-top-color:#b1b4b6;box-shadow:inset 0 3px #1d70b8}.govuk-frontend-supported .govuk-accordion__section-header:hover .govuk-accordion__section-button{border-top-color:#b1b4b6}}.govuk-back-link{font-size:.875rem;line-height:1.1428571429;font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:underline;text-decoration-thickness:max(1px,.0625rem);text-underline-offset:.1578em;display:inline-block;position:relative;margin-top:15px;margin-bottom:15px;padding-left:.875em}@media (min-width: 40.0625em){.govuk-back-link{font-size:1rem;line-height:1.25}}@media print{.govuk-back-link{font-size:14pt;line-height:1.2}}@media print{.govuk-back-link{font-family:sans-serif}}.govuk-back-link:hover{text-decoration-thickness:max(3px,.1875rem,.12em);-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;-webkit-text-decoration-skip:none;text-decoration-skip:none}.govuk-back-link:focus{outline:3px solid transparent;color:#0b0c0c;background-color:#fd0;box-shadow:0 -2px #fd0,0 4px #0b0c0c;text-decoration:none;-webkit-box-decoration-break:clone;box-decoration-break:clone}.govuk-back-link:link,.govuk-back-link:visited{color:#0b0c0c}@media print{.govuk-back-link:link,.govuk-back-link:visited{color:#000}}.govuk-back-link:hover{color:rgba(11,12,12,.99)}.govuk-back-link:active,.govuk-back-link:focus{color:#0b0c0c}@media print{.govuk-back-link:active,.govuk-back-link:focus{color:#000}}.govuk-back-link:before{content:"";display:block;position:absolute;top:0;bottom:0;left:.1875em;width:.4375em;height:.4375em;margin:auto 0;transform:rotate(225deg);border:solid;border-width:1px 1px 0 0;border-color:#505a5f}@supports (border-width: max(0px)){.govuk-back-link:before{border-width:max(1px,.0625em) max(1px,.0625em) 0 0;font-size:max(16px,1em)}}.govuk-back-link:focus:before{border-color:#0b0c0c}.govuk-back-link:after{content:"";position:absolute;top:-14px;right:0;bottom:-14px;left:0}.govuk-back-link--inverse:link,.govuk-back-link--inverse:visited{color:#fff}.govuk-back-link--inverse:hover,.govuk-back-link--inverse:active{color:rgba(255,255,255,.99)}.govuk-back-link--inverse:focus{color:#0b0c0c}.govuk-back-link--inverse:before{border-color:currentcolor}.govuk-breadcrumbs{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:.875rem;line-height:1.1428571429;color:#0b0c0c;margin-top:15px;margin-bottom:10px}@media print{.govuk-breadcrumbs{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-breadcrumbs{font-size:1rem;line-height:1.25}}@media print{.govuk-breadcrumbs{font-size:14pt;line-height:1.2}}@media print{.govuk-breadcrumbs{color:#000}}.govuk-breadcrumbs__list{margin:0;padding:0;list-style-type:none}.govuk-breadcrumbs__list:after{content:"";display:block;clear:both}.govuk-breadcrumbs__list-item{display:inline-block;position:relative;margin-bottom:5px;margin-left:.625em;padding-left:.9784375em;float:left}.govuk-breadcrumbs__list-item:before{content:"";display:block;position:absolute;top:0;bottom:0;left:-.206875em;width:.4375em;height:.4375em;margin:auto 0;transform:rotate(45deg);border:solid;border-width:1px 1px 0 0;border-color:#505a5f}@supports (border-width: max(0px)){.govuk-breadcrumbs__list-item:before{border-width:max(1px,.0625em) max(1px,.0625em) 0 0;font-size:max(16px,1em)}}.govuk-breadcrumbs__list-item:first-child{margin-left:0;padding-left:0}.govuk-breadcrumbs__list-item:first-child:before{content:none;display:none}.govuk-breadcrumbs__link{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:underline;text-decoration-thickness:max(1px,.0625rem);text-underline-offset:.1578em}@media print{.govuk-breadcrumbs__link{font-family:sans-serif}}.govuk-breadcrumbs__link:hover{text-decoration-thickness:max(3px,.1875rem,.12em);-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;-webkit-text-decoration-skip:none;text-decoration-skip:none}.govuk-breadcrumbs__link:focus{outline:3px solid transparent;color:#0b0c0c;background-color:#fd0;box-shadow:0 -2px #fd0,0 4px #0b0c0c;text-decoration:none;-webkit-box-decoration-break:clone;box-decoration-break:clone}.govuk-breadcrumbs__link:link,.govuk-breadcrumbs__link:visited{color:#0b0c0c}@media print{.govuk-breadcrumbs__link:link,.govuk-breadcrumbs__link:visited{color:#000}}.govuk-breadcrumbs__link:hover{color:rgba(11,12,12,.99)}.govuk-breadcrumbs__link:active,.govuk-breadcrumbs__link:focus{color:#0b0c0c}@media print{.govuk-breadcrumbs__link:active,.govuk-breadcrumbs__link:focus{color:#000}}@media (max-width: 40.0525em){.govuk-breadcrumbs--collapse-on-mobile .govuk-breadcrumbs__list-item{display:none}.govuk-breadcrumbs--collapse-on-mobile .govuk-breadcrumbs__list-item:first-child,.govuk-breadcrumbs--collapse-on-mobile .govuk-breadcrumbs__list-item:last-child{display:inline-block}.govuk-breadcrumbs--collapse-on-mobile .govuk-breadcrumbs__list-item:before{top:.375em;margin:0}.govuk-breadcrumbs--collapse-on-mobile .govuk-breadcrumbs__list{display:flex}}.govuk-breadcrumbs--inverse,.govuk-breadcrumbs--inverse .govuk-breadcrumbs__link:link,.govuk-breadcrumbs--inverse .govuk-breadcrumbs__link:visited{color:#fff}.govuk-breadcrumbs--inverse .govuk-breadcrumbs__link:hover,.govuk-breadcrumbs--inverse .govuk-breadcrumbs__link:active{color:rgba(255,255,255,.99)}.govuk-breadcrumbs--inverse .govuk-breadcrumbs__link:focus{color:#0b0c0c}.govuk-breadcrumbs--inverse .govuk-breadcrumbs__list-item:before{border-color:currentcolor}.govuk-button{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.1875;box-sizing:border-box;display:inline-block;position:relative;width:100%;margin:0 0 22px;padding:8px 10px 7px;border:2px solid transparent;border-radius:0;color:#fff;background-color:#00703c;box-shadow:0 2px #002d18;text-align:center;vertical-align:top;cursor:pointer;-webkit-appearance:none}@media print{.govuk-button{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-button{font-size:1.1875rem;line-height:1}}@media print{.govuk-button{font-size:14pt;line-height:19px}}@media (min-width: 40.0625em){.govuk-button{margin-bottom:32px}}@media (min-width: 40.0625em){.govuk-button{width:auto}}.govuk-button:link,.govuk-button:visited,.govuk-button:active,.govuk-button:hover{color:#fff;text-decoration:none}.govuk-button::-moz-focus-inner{padding:0;border:0}.govuk-button:hover{background-color:#005a30}.govuk-button:active{top:2px}.govuk-button:focus{border-color:#fd0;outline:3px solid transparent;box-shadow:inset 0 0 0 1px #fd0}.govuk-button:focus:not(:active):not(:hover){border-color:#fd0;color:#0b0c0c;background-color:#fd0;box-shadow:0 2px #0b0c0c}.govuk-button:before{content:"";display:block;position:absolute;top:-2px;right:-2px;bottom:-4px;left:-2px;background:transparent}.govuk-button:active:before{top:-4px}.govuk-button[disabled]{opacity:.5}.govuk-button[disabled]:hover{background-color:#00703c;cursor:not-allowed}.govuk-button[disabled]:active{top:0;box-shadow:0 2px #002d18}.govuk-button--secondary{background-color:#f3f2f1;box-shadow:0 2px #929191}.govuk-button--secondary,.govuk-button--secondary:link,.govuk-button--secondary:visited,.govuk-button--secondary:active,.govuk-button--secondary:hover{color:#0b0c0c}.govuk-button--secondary:hover{background-color:#dbdad9}.govuk-button--secondary:hover[disabled]{background-color:#f3f2f1}.govuk-button--warning{background-color:#d4351c;box-shadow:0 2px #55150b}.govuk-button--warning,.govuk-button--warning:link,.govuk-button--warning:visited,.govuk-button--warning:active,.govuk-button--warning:hover{color:#fff}.govuk-button--warning:hover{background-color:#aa2a16}.govuk-button--warning:hover[disabled]{background-color:#d4351c}.govuk-button--inverse{background-color:#fff;box-shadow:0 2px #144e81}.govuk-button--inverse,.govuk-button--inverse:link,.govuk-button--inverse:visited,.govuk-button--inverse:active,.govuk-button--inverse:hover{color:#1d70b8}.govuk-button--inverse:hover{background-color:#e8f1f8}.govuk-button--inverse:hover[disabled]{background-color:#fff}.govuk-button--start{font-weight:700;font-size:1.125rem;line-height:1;display:inline-flex;min-height:auto;justify-content:center}@media (min-width: 40.0625em){.govuk-button--start{font-size:1.5rem;line-height:1}}@media print{.govuk-button--start{font-size:18pt;line-height:1}}.govuk-button__start-icon{margin-left:5px;vertical-align:middle;flex-shrink:0;align-self:center;forced-color-adjust:auto}@media (min-width: 48.0625em){.govuk-button__start-icon{margin-left:10px}}.govuk-error-message{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:700;font-size:1rem;line-height:1.25;display:block;margin-top:0;margin-bottom:15px;clear:both;color:#d4351c}@media print{.govuk-error-message{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-error-message{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-error-message{font-size:14pt;line-height:1.15}}.govuk-hint{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.25;margin-bottom:15px;color:#505a5f}@media print{.govuk-hint{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-hint{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-hint{font-size:14pt;line-height:1.15}}.govuk-label:not(.govuk-label--m):not(.govuk-label--l):not(.govuk-label--xl)+.govuk-hint{margin-bottom:10px}.govuk-fieldset__legend:not(.govuk-fieldset__legend--m):not(.govuk-fieldset__legend--l):not(.govuk-fieldset__legend--xl)+.govuk-hint{margin-bottom:10px}.govuk-fieldset__legend+.govuk-hint{margin-top:-5px}.govuk-label{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.25;color:#0b0c0c;display:block;margin-bottom:5px}@media print{.govuk-label{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-label{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-label{font-size:14pt;line-height:1.15}}@media print{.govuk-label{color:#000}}.govuk-label--xl,.govuk-label--l,.govuk-label--m{font-weight:700;margin-bottom:15px}.govuk-label--xl{font-size:2rem;line-height:1.09375}@media (min-width: 40.0625em){.govuk-label--xl{font-size:3rem;line-height:1.0416666667}}@media print{.govuk-label--xl{font-size:32pt;line-height:1.15}}.govuk-label--l{font-size:1.5rem;line-height:1.0416666667}@media (min-width: 40.0625em){.govuk-label--l{font-size:2.25rem;line-height:1.1111111111}}@media print{.govuk-label--l{font-size:24pt;line-height:1.05}}.govuk-label--m{font-size:1.125rem;line-height:1.1111111111}@media (min-width: 40.0625em){.govuk-label--m{font-size:1.5rem;line-height:1.25}}@media print{.govuk-label--m{font-size:18pt;line-height:1.15}}.govuk-label--s{font-weight:700}.govuk-label-wrapper{margin:0}.govuk-textarea{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.25;box-sizing:border-box;display:block;width:100%;min-height:40px;margin-bottom:20px;padding:5px;resize:vertical;border:2px solid #0b0c0c;border-radius:0;-webkit-appearance:none}@media print{.govuk-textarea{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-textarea{font-size:1.1875rem;line-height:1.25}}@media print{.govuk-textarea{font-size:14pt;line-height:1.25}}@media (min-width: 40.0625em){.govuk-textarea{margin-bottom:30px}}.govuk-textarea:focus{outline:3px solid #ffdd00;outline-offset:0;box-shadow:inset 0 0 0 2px}.govuk-textarea:disabled{opacity:.5;color:inherit;background-color:transparent;cursor:not-allowed}.govuk-textarea--error{border-color:#d4351c}.govuk-textarea--error:focus{border-color:#0b0c0c}.govuk-character-count{margin-bottom:20px}@media (min-width: 40.0625em){.govuk-character-count{margin-bottom:30px}}.govuk-character-count .govuk-form-group,.govuk-character-count .govuk-textarea{margin-bottom:5px}.govuk-character-count__message{font-variant-numeric:tabular-nums;margin-top:0;margin-bottom:0}.govuk-character-count__message:after{content:"\200b"}.govuk-character-count__message--disabled{visibility:hidden}.govuk-fieldset{min-width:0;margin:0;padding:0;border:0}.govuk-fieldset:after{content:"";display:block;clear:both}@supports not (caret-color: auto){.govuk-fieldset,x:-moz-any-link{display:table-cell}}.govuk-fieldset__legend{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.25;color:#0b0c0c;box-sizing:border-box;display:table;max-width:100%;margin-bottom:10px;padding:0;white-space:normal}@media print{.govuk-fieldset__legend{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-fieldset__legend{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-fieldset__legend{font-size:14pt;line-height:1.15}}@media print{.govuk-fieldset__legend{color:#000}}.govuk-fieldset__legend--xl,.govuk-fieldset__legend--l,.govuk-fieldset__legend--m{font-weight:700;margin-bottom:15px}.govuk-fieldset__legend--xl{font-size:2rem;line-height:1.09375}@media (min-width: 40.0625em){.govuk-fieldset__legend--xl{font-size:3rem;line-height:1.0416666667}}@media print{.govuk-fieldset__legend--xl{font-size:32pt;line-height:1.15}}.govuk-fieldset__legend--l{font-size:1.5rem;line-height:1.0416666667}@media (min-width: 40.0625em){.govuk-fieldset__legend--l{font-size:2.25rem;line-height:1.1111111111}}@media print{.govuk-fieldset__legend--l{font-size:24pt;line-height:1.05}}.govuk-fieldset__legend--m{font-size:1.125rem;line-height:1.1111111111}@media (min-width: 40.0625em){.govuk-fieldset__legend--m{font-size:1.5rem;line-height:1.25}}@media print{.govuk-fieldset__legend--m{font-size:18pt;line-height:1.15}}.govuk-fieldset__legend--s{font-weight:700}.govuk-fieldset__heading{margin:0;font-size:inherit;font-weight:inherit}.govuk-checkboxes__item{display:flex;flex-wrap:wrap;position:relative;margin-bottom:10px}.govuk-checkboxes__item:last-child,.govuk-checkboxes__item:last-of-type{margin-bottom:0}.govuk-checkboxes__input{width:44px;height:44px;margin:0;opacity:0;cursor:pointer}.govuk-checkboxes__label{align-self:center;max-width:calc(100% - 74px);margin-bottom:0;padding:7px 15px;cursor:pointer;touch-action:manipulation}.govuk-checkboxes__label:before{content:"";box-sizing:border-box;position:absolute;top:2px;left:2px;width:40px;height:40px;border:2px solid currentcolor;background:transparent}.govuk-checkboxes__label:after{content:"";box-sizing:border-box;position:absolute;top:13px;left:10px;width:23px;height:12px;transform:rotate(-45deg);border:solid;border-width:0 0 5px 5px;border-top-color:transparent;opacity:0;background:transparent}.govuk-checkboxes__hint{display:block;width:100%;margin-top:-5px;padding-right:15px;padding-left:59px}.govuk-label:not(.govuk-label--m):not(.govuk-label--l):not(.govuk-label--xl)+.govuk-checkboxes__hint{margin-bottom:0}.govuk-checkboxes__input:focus+.govuk-checkboxes__label:before{border-width:4px;outline:3px solid transparent;outline-offset:1px;box-shadow:0 0 0 3px #fd0}@media screen and (forced-colors: active),(-ms-high-contrast: active){.govuk-checkboxes__input:focus+.govuk-checkboxes__label:before{outline-color:Highlight}}.govuk-checkboxes__input:checked+.govuk-checkboxes__label:after{opacity:1}.govuk-checkboxes__input:disabled,.govuk-checkboxes__input:disabled+.govuk-checkboxes__label{cursor:not-allowed}.govuk-checkboxes__input:disabled+.govuk-checkboxes__label,.govuk-checkboxes__input:disabled~.govuk-hint{opacity:.5}.govuk-checkboxes__divider{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.25;color:#0b0c0c;width:40px;margin-bottom:10px;text-align:center}@media print{.govuk-checkboxes__divider{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-checkboxes__divider{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-checkboxes__divider{font-size:14pt;line-height:1.15}}@media print{.govuk-checkboxes__divider{color:#000}}.govuk-checkboxes__conditional{margin-bottom:15px;margin-left:18px;padding-left:33px;border-left:4px solid #b1b4b6}@media (min-width: 40.0625em){.govuk-checkboxes__conditional{margin-bottom:20px}}.govuk-frontend-supported .govuk-checkboxes__conditional--hidden{display:none}.govuk-checkboxes__conditional>:last-child{margin-bottom:0}.govuk-checkboxes--small .govuk-checkboxes__item{margin-bottom:0}.govuk-checkboxes--small .govuk-checkboxes__input{margin-left:-10px}.govuk-checkboxes--small .govuk-checkboxes__label{padding-left:1px}.govuk-checkboxes--small .govuk-checkboxes__label:before{top:10px;left:0;width:24px;height:24px}.govuk-checkboxes--small .govuk-checkboxes__label:after{top:17px;left:6px;width:12px;height:6.5px;border-width:0 0 3px 3px}.govuk-checkboxes--small .govuk-checkboxes__hint{padding-left:34px}.govuk-checkboxes--small .govuk-checkboxes__conditional{margin-left:10px;padding-left:20px}.govuk-checkboxes--small .govuk-checkboxes__item:hover .govuk-checkboxes__input:not(:disabled)+.govuk-checkboxes__label:before{outline:3px dashed transparent;outline-offset:1px;box-shadow:0 0 0 10px #b1b4b6}.govuk-checkboxes--small .govuk-checkboxes__item:hover .govuk-checkboxes__input:focus+.govuk-checkboxes__label:before{box-shadow:0 0 0 3px #fd0,0 0 0 10px #b1b4b6}@media screen and (forced-colors: active),(-ms-high-contrast: active){.govuk-checkboxes--small .govuk-checkboxes__item:hover .govuk-checkboxes__input:focus+.govuk-checkboxes__label:before{outline-color:Highlight}}@media (hover: none),(pointer: coarse){.govuk-checkboxes--small .govuk-checkboxes__item:hover .govuk-checkboxes__input:not(:disabled)+.govuk-checkboxes__label:before{box-shadow:initial}.govuk-checkboxes--small .govuk-checkboxes__item:hover .govuk-checkboxes__input:focus+.govuk-checkboxes__label:before{box-shadow:0 0 0 3px #fd0}}.govuk-cookie-banner{padding-top:20px;border-bottom:10px solid transparent;background-color:#f3f2f1}.govuk-cookie-banner[hidden]{display:none}.govuk-cookie-banner__message{margin-bottom:-10px}.govuk-cookie-banner__message[hidden]{display:none}.govuk-cookie-banner__message:focus{outline:none}.govuk-input{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.25;box-sizing:border-box;width:100%;height:2.5rem;margin-top:0;padding:5px;border:2px solid #0b0c0c;border-radius:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}@media print{.govuk-input{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-input{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-input{font-size:14pt;line-height:1.15}}.govuk-input:focus{outline:3px solid #ffdd00;outline-offset:0;box-shadow:inset 0 0 0 2px}.govuk-input:disabled{opacity:.5;color:inherit;background-color:transparent;cursor:not-allowed}.govuk-input::-webkit-outer-spin-button,.govuk-input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none}.govuk-input[type=number]{-moz-appearance:textfield}.govuk-input--error{border-color:#d4351c}.govuk-input--error:focus{border-color:#0b0c0c}.govuk-input--extra-letter-spacing{font-variant-numeric:tabular-nums;letter-spacing:.05em}.govuk-input--width-30{max-width:29.5em}.govuk-input--width-20{max-width:20.5em}.govuk-input--width-10{max-width:11.5em}.govuk-input--width-5{max-width:5.5em}.govuk-input--width-4{max-width:4.5em}.govuk-input--width-3{max-width:3.75em}.govuk-input--width-2{max-width:2.75em}.govuk-input__wrapper{display:flex}.govuk-input__wrapper .govuk-input{flex:0 1 auto}.govuk-input__wrapper .govuk-input:focus{z-index:1}@media (max-width: 19.99em){.govuk-input__wrapper{display:block}.govuk-input__wrapper .govuk-input{max-width:100%}}.govuk-input__prefix,.govuk-input__suffix{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.25;box-sizing:border-box;display:flex;align-items:center;justify-content:center;min-width:2.5rem;height:2.5rem;padding:5px;border:2px solid #0b0c0c;background-color:#f3f2f1;text-align:center;white-space:nowrap;cursor:default;flex:0 0 auto}@media print{.govuk-input__prefix,.govuk-input__suffix{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-input__prefix,.govuk-input__suffix{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-input__prefix,.govuk-input__suffix{font-size:14pt;line-height:1.15}}@media (max-width: 19.99em){.govuk-input__prefix,.govuk-input__suffix{display:block;height:100%;white-space:normal}}@media (max-width: 19.99em){.govuk-input__prefix{border-bottom:0}}@media (min-width: 20em){.govuk-input__prefix{border-right:0}}@media (max-width: 19.99em){.govuk-input__suffix{border-top:0}}@media (min-width: 20em){.govuk-input__suffix{border-left:0}}.govuk-date-input{font-size:0}.govuk-date-input:after{content:"";display:block;clear:both}.govuk-date-input__item{display:inline-block;margin-right:20px;margin-bottom:0}.govuk-date-input__label{display:block}.govuk-date-input__input{margin-bottom:0}.govuk-details{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.25;color:#0b0c0c;margin-bottom:20px;display:block}@media print{.govuk-details{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-details{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-details{font-size:14pt;line-height:1.15}}@media print{.govuk-details{color:#000}}@media (min-width: 40.0625em){.govuk-details{margin-bottom:30px}}.govuk-details__summary{display:inline-block;margin-bottom:5px}.govuk-details__summary-text>:first-child{margin-top:0}.govuk-details__summary-text>:only-child,.govuk-details__summary-text>:last-child{margin-bottom:0}.govuk-details__text{padding-top:15px;padding-bottom:15px;padding-left:20px}.govuk-details__text p{margin-top:0;margin-bottom:20px}.govuk-details__text>:last-child{margin-bottom:0}@media screen\fffd{.govuk-details{border-left:10px solid #b1b4b6}.govuk-details__summary{margin-top:15px}.govuk-details__summary-text{font-weight:700;margin-bottom:15px;padding-left:20px}}@media screen\fffd and (min-width: 40.0625em){.govuk-details__summary-text{margin-bottom:20px}}@supports not (-ms-ime-align: auto){.govuk-details__summary{position:relative;padding-left:25px;color:#1d70b8;cursor:pointer}.govuk-details__summary:hover{color:#003078}.govuk-details__summary:focus{outline:3px solid transparent;color:#0b0c0c;background-color:#fd0;box-shadow:0 -2px #fd0,0 4px #0b0c0c;text-decoration:none;-webkit-box-decoration-break:clone;box-decoration-break:clone}.govuk-details__summary-text{text-decoration:underline;text-decoration-thickness:max(1px,.0625rem);text-underline-offset:.1578em}.govuk-details__summary:hover .govuk-details__summary-text{text-decoration-thickness:max(3px,.1875rem,.12em);-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;-webkit-text-decoration-skip:none;text-decoration-skip:none}.govuk-details__summary:focus .govuk-details__summary-text{text-decoration:none}.govuk-details__summary::-webkit-details-marker{display:none}.govuk-details__summary:before{content:"";position:absolute;top:-1px;bottom:0;left:0;margin:auto;display:block;width:0;height:0;border-style:solid;border-color:transparent;-webkit-clip-path:polygon(0% 0%,100% 50%,0% 100%);clip-path:polygon(0% 0%,100% 50%,0% 100%);border-width:7px 0 7px 12.124px;border-left-color:inherit}.govuk-details[open]>.govuk-details__summary:before{display:block;width:0;height:0;border-style:solid;border-color:transparent;-webkit-clip-path:polygon(0% 0%,50% 100%,100% 0%);clip-path:polygon(0% 0%,50% 100%,100% 0%);border-width:12.124px 7px 0 7px;border-top-color:inherit}.govuk-details__text{border-left:5px solid #b1b4b6}}.govuk-error-summary{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.25;color:#0b0c0c;padding:15px;margin-bottom:30px;border:5px solid #d4351c}@media print{.govuk-error-summary{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-error-summary{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-error-summary{font-size:14pt;line-height:1.15}}@media print{.govuk-error-summary{color:#000}}@media (min-width: 40.0625em){.govuk-error-summary{padding:20px}}@media (min-width: 40.0625em){.govuk-error-summary{margin-bottom:50px}}.govuk-error-summary:focus{outline:3px solid #ffdd00}.govuk-error-summary__title{font-size:1.125rem;line-height:1.1111111111;font-weight:700;margin-top:0;margin-bottom:15px}@media (min-width: 40.0625em){.govuk-error-summary__title{font-size:1.5rem;line-height:1.25}}@media print{.govuk-error-summary__title{font-size:18pt;line-height:1.15}}@media (min-width: 40.0625em){.govuk-error-summary__title{margin-bottom:20px}}.govuk-error-summary__body p{margin-top:0;margin-bottom:15px}@media (min-width: 40.0625em){.govuk-error-summary__body p{margin-bottom:20px}}.govuk-error-summary__list{margin-top:0;margin-bottom:0}.govuk-error-summary__list a{font-weight:700;font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:underline;text-decoration-thickness:max(1px,.0625rem);text-underline-offset:.1578em}@media print{.govuk-error-summary__list a{font-family:sans-serif}}.govuk-error-summary__list a:hover{text-decoration-thickness:max(3px,.1875rem,.12em);-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;-webkit-text-decoration-skip:none;text-decoration-skip:none}.govuk-error-summary__list a:focus{outline:3px solid transparent;color:#0b0c0c;background-color:#fd0;box-shadow:0 -2px #fd0,0 4px #0b0c0c;text-decoration:none;-webkit-box-decoration-break:clone;box-decoration-break:clone}.govuk-error-summary__list a:link,.govuk-error-summary__list a:visited{color:#d4351c}.govuk-error-summary__list a:hover{color:#942514}.govuk-error-summary__list a:active{color:#d4351c}.govuk-error-summary__list a:focus{color:#0b0c0c}.govuk-exit-this-page{margin-bottom:30px;position:-webkit-sticky;position:-webkit-sticky;position:sticky;z-index:1000;top:0;left:0;width:100%}@media (min-width: 40.0625em){.govuk-exit-this-page{margin-bottom:50px}}@media (min-width: 40.0625em){.govuk-exit-this-page{display:inline-block;right:0;left:auto;width:auto;float:right}}.govuk-exit-this-page__button{margin-bottom:0}.govuk-exit-this-page__indicator{padding:10px 10px 0;display:none;color:inherit;line-height:0;text-align:center;pointer-events:none}.govuk-exit-this-page__indicator--visible{display:block}.govuk-exit-this-page__indicator-light{box-sizing:border-box;display:inline-block;width:.75em;height:.75em;margin:0 .125em;border-width:2px;border-style:solid;border-radius:50%;border-color:currentcolor}.govuk-exit-this-page__indicator-light--on{border-width:.375em}@media only print{.govuk-exit-this-page{display:none}}.govuk-exit-this-page-overlay{position:fixed;z-index:9999;top:0;right:0;bottom:0;left:0;background-color:#fff}.govuk-exit-this-page-hide-content *{display:none!important}.govuk-exit-this-page-hide-content .govuk-exit-this-page-overlay{display:block!important}.govuk-file-upload{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.25;color:#0b0c0c;max-width:100%;margin-left:-5px;padding:5px}@media print{.govuk-file-upload{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-file-upload{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-file-upload{font-size:14pt;line-height:1.15}}@media print{.govuk-file-upload{color:#000}}.govuk-file-upload::-webkit-file-upload-button{-webkit-appearance:button;color:inherit;font:inherit}.govuk-file-upload:focus{outline:3px solid #ffdd00;box-shadow:inset 0 0 0 4px #0b0c0c}.govuk-file-upload:focus-within{outline:3px solid #ffdd00;box-shadow:inset 0 0 0 4px #0b0c0c}.govuk-file-upload:disabled{opacity:.5;cursor:not-allowed}.govuk-footer{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:.875rem;line-height:1.1428571429;padding-top:25px;padding-bottom:15px;border-top:1px solid #b1b4b6;color:#0b0c0c;background:#f3f2f1}@media print{.govuk-footer{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-footer{font-size:1rem;line-height:1.25}}@media print{.govuk-footer{font-size:14pt;line-height:1.2}}@media (min-width: 40.0625em){.govuk-footer{padding-top:40px}}@media (min-width: 40.0625em){.govuk-footer{padding-bottom:25px}}.govuk-footer__link{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:underline;text-decoration-thickness:max(1px,.0625rem);text-underline-offset:.1578em}@media print{.govuk-footer__link{font-family:sans-serif}}.govuk-footer__link:hover{text-decoration-thickness:max(3px,.1875rem,.12em);-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;-webkit-text-decoration-skip:none;text-decoration-skip:none}.govuk-footer__link:focus{outline:3px solid transparent;color:#0b0c0c;background-color:#fd0;box-shadow:0 -2px #fd0,0 4px #0b0c0c;text-decoration:none;-webkit-box-decoration-break:clone;box-decoration-break:clone}.govuk-footer__link:link,.govuk-footer__link:visited{color:#0b0c0c}@media print{.govuk-footer__link:link,.govuk-footer__link:visited{color:#000}}.govuk-footer__link:hover{color:rgba(11,12,12,.99)}.govuk-footer__link:active,.govuk-footer__link:focus{color:#0b0c0c}@media print{.govuk-footer__link:active,.govuk-footer__link:focus{color:#000}}.govuk-footer__section-break{margin:0 0 30px;border:0;border-bottom:1px solid #b1b4b6}@media (min-width: 40.0625em){.govuk-footer__section-break{margin-bottom:50px}}.govuk-footer__meta{display:flex;margin-right:-15px;margin-left:-15px;flex-wrap:wrap;align-items:flex-end;justify-content:center}.govuk-footer__meta-item{margin-right:15px;margin-bottom:25px;margin-left:15px}.govuk-footer__meta-item--grow{flex:1}@media (max-width: 40.0525em){.govuk-footer__meta-item--grow{flex-basis:320px}}.govuk-footer__licence-logo{display:inline-block;margin-right:10px;vertical-align:top;forced-color-adjust:auto}@media (max-width: 48.0525em){.govuk-footer__licence-logo{margin-bottom:15px}}.govuk-footer__licence-description{display:inline-block}.govuk-footer__copyright-logo{display:inline-block;min-width:125px;padding-top:112px;background-image:url(/assets/images/govuk-crest.png);background-repeat:no-repeat;background-position:50% 0%;background-size:125px 102px;text-align:center;white-space:nowrap}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min-resolution: 192dpi),only screen and (min-resolution: 2dppx){.govuk-footer__copyright-logo{background-image:url(/assets/images/govuk-crest-2x.png)}}.govuk-footer__inline-list{margin-top:0;margin-bottom:15px;padding:0}.govuk-footer__meta-custom{margin-bottom:20px}.govuk-footer__inline-list-item{display:inline-block;margin-right:15px;margin-bottom:5px}.govuk-footer__heading{margin-bottom:30px;padding-bottom:20px;border-bottom:1px solid #b1b4b6}@media (max-width: 40.0525em){.govuk-footer__heading{padding-bottom:10px}}.govuk-footer__navigation{margin-right:-15px;margin-left:-15px}.govuk-footer__navigation:after{content:"";display:block;clear:both}.govuk-footer__section{display:inline-block;margin-bottom:30px;vertical-align:top}.govuk-footer__list{margin:0;padding:0;list-style:none;column-gap:30px}@media (min-width: 48.0625em){.govuk-footer__list--columns-2{column-count:2}.govuk-footer__list--columns-3{column-count:3}}.govuk-footer__list-item{margin-bottom:15px}@media (min-width: 40.0625em){.govuk-footer__list-item{margin-bottom:20px}}.govuk-footer__list-item:last-child{margin-bottom:0}.govuk-header{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:.875rem;line-height:1;border-bottom:10px solid #ffffff;color:#fff;background:#0b0c0c}@media print{.govuk-header{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-header{font-size:1rem;line-height:1}}@media print{.govuk-header{font-size:14pt;line-height:1}}.govuk-header__container--full-width{padding:0 15px;border-color:#1d70b8}.govuk-header__container--full-width .govuk-header__menu-button{right:15px}.govuk-header__container{position:relative;margin-bottom:-10px;padding-top:10px;border-bottom:10px solid #1d70b8}.govuk-header__container:after{content:"";display:block;clear:both}.govuk-header__logotype{display:inline-block;position:relative;top:-3px;margin-right:5px;fill:currentcolor;vertical-align:top}@media (forced-colors: active){.govuk-header__logotype{forced-color-adjust:none;color:linktext}}.govuk-header__logotype:last-child{margin-right:0}.govuk-header__product-name{font-size:1.125rem;line-height:1;font-weight:400;display:inline-table;margin-top:10px;vertical-align:top}@media (min-width: 40.0625em){.govuk-header__product-name{font-size:1.5rem;line-height:1}}@media print{.govuk-header__product-name{font-size:18pt;line-height:1}}@-moz-document url-prefix(){.govuk-header__product-name{margin-top:9.5px}}@media (min-width: 40.0625em){.govuk-header__product-name{margin-top:5px}@-moz-document url-prefix(){.govuk-header__product-name{margin-top:4.5px}}}.govuk-header__link{text-decoration:none}.govuk-header__link:link,.govuk-header__link:visited{color:#fff}.govuk-header__link:hover,.govuk-header__link:active{color:rgba(255,255,255,.99)}.govuk-header__link:focus{color:#0b0c0c}.govuk-header__link:hover{text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:.1578em}.govuk-header__link:focus{outline:3px solid transparent;color:#0b0c0c;background-color:#fd0;box-shadow:0 -2px #fd0,0 4px #0b0c0c;text-decoration:none;-webkit-box-decoration-break:clone;box-decoration-break:clone}.govuk-header__link--homepage{display:inline-block;margin-right:10px;font-size:30px}@media (min-width: 48.0625em){.govuk-header__link--homepage{display:inline}.govuk-header__link--homepage:focus{box-shadow:0 0 #fd0}}.govuk-header__link--homepage:link,.govuk-header__link--homepage:visited{text-decoration:none}.govuk-header__link--homepage:hover,.govuk-header__link--homepage:active{margin-bottom:-3px;border-bottom:3px solid}.govuk-header__link--homepage:focus{margin-bottom:0;border-bottom:0}.govuk-header__service-name{display:inline-block;margin-bottom:10px;font-size:1.125rem;line-height:1.1111111111;font-weight:700}@media (min-width: 40.0625em){.govuk-header__service-name{font-size:1.5rem;line-height:1.25}}@media print{.govuk-header__service-name{font-size:18pt;line-height:1.15}}.govuk-header__logo,.govuk-header__content{box-sizing:border-box}.govuk-header__logo{margin-bottom:10px;padding-right:80px}@media (min-width: 48.0625em){.govuk-header__logo{width:33.33%;padding-right:15px;float:left;vertical-align:top}.govuk-header__logo:last-child{width:auto;padding-right:0;float:none}}@media (min-width: 48.0625em){.govuk-header__content{width:66.66%;padding-left:15px;float:left}}.govuk-header__menu-button{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:.875rem;line-height:1.1428571429;position:absolute;top:13px;right:0;max-width:80px;min-height:24px;margin:0;padding:0;border:0;color:#fff;background:none;word-break:break-all;cursor:pointer}@media print{.govuk-header__menu-button{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-header__menu-button{font-size:1rem;line-height:1.25}}@media print{.govuk-header__menu-button{font-size:14pt;line-height:1.2}}.govuk-header__menu-button:hover{-webkit-text-decoration:solid underline 3px;text-decoration:solid underline 3px;text-underline-offset:.1578em}.govuk-header__menu-button:focus{outline:3px solid transparent;color:#0b0c0c;background-color:#fd0;box-shadow:0 -2px #fd0,0 4px #0b0c0c;text-decoration:none;-webkit-box-decoration-break:clone;box-decoration-break:clone}.govuk-header__menu-button:after{display:inline-block;width:0;height:0;border-style:solid;border-color:transparent;-webkit-clip-path:polygon(0% 0%,50% 100%,100% 0%);clip-path:polygon(0% 0%,50% 100%,100% 0%);border-width:8.66px 5px 0 5px;border-top-color:inherit;content:"";margin-left:5px}.govuk-header__menu-button[aria-expanded=true]:after{display:inline-block;width:0;height:0;border-style:solid;border-color:transparent;-webkit-clip-path:polygon(50% 0%,0% 100%,100% 100%);clip-path:polygon(50% 0%,0% 100%,100% 100%);border-width:0 5px 8.66px 5px;border-bottom-color:inherit}@media (min-width: 40.0625em){.govuk-header__menu-button{top:15px}}.govuk-frontend-supported .govuk-header__menu-button{display:block}.govuk-header__menu-button[hidden],.govuk-frontend-supported .govuk-header__menu-button[hidden]{display:none}@media (min-width: 48.0625em){.govuk-header__navigation{margin-bottom:10px}}.govuk-header__navigation-list{margin:0;padding:0;list-style:none}.govuk-header__navigation-list[hidden]{display:none}@media (min-width: 48.0625em){.govuk-header__navigation--end{margin:0;padding:5px 0;text-align:right}}.govuk-header__navigation-item{padding:10px 0;border-bottom:1px solid #2e3133}@media (min-width: 48.0625em){.govuk-header__navigation-item{display:inline-block;margin-right:15px;padding:5px 0;border:0}}.govuk-header__navigation-item a{font-size:.875rem;line-height:1.1428571429;font-weight:700;white-space:nowrap}@media (min-width: 40.0625em){.govuk-header__navigation-item a{font-size:1rem;line-height:1.25}}@media print{.govuk-header__navigation-item a{font-size:14pt;line-height:1.2}}.govuk-header__navigation-item--active a:link,.govuk-header__navigation-item--active a:hover,.govuk-header__navigation-item--active a:visited{color:#1d8feb}@media print{.govuk-header__navigation-item--active a{color:#1d70b8}}.govuk-header__navigation-item--active a:focus{color:#0b0c0c}.govuk-header__navigation-item:last-child{margin-right:0;border-bottom:0}@media print{.govuk-header{border-bottom-width:0;color:#0b0c0c;background:transparent}.govuk-header__link:link,.govuk-header__link:visited{color:#0b0c0c}.govuk-header__link:after{display:none}}.govuk-inset-text{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.25;color:#0b0c0c;padding:15px;margin-top:20px;margin-bottom:20px;clear:both;border-left:10px solid #b1b4b6}@media print{.govuk-inset-text{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-inset-text{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-inset-text{font-size:14pt;line-height:1.15}}@media print{.govuk-inset-text{color:#000}}@media (min-width: 40.0625em){.govuk-inset-text{margin-top:30px}}@media (min-width: 40.0625em){.govuk-inset-text{margin-bottom:30px}}.govuk-inset-text>:first-child{margin-top:0}.govuk-inset-text>:only-child,.govuk-inset-text>:last-child{margin-bottom:0}.govuk-notification-banner{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.25;margin-bottom:30px;border:5px solid #1d70b8;background-color:#1d70b8}@media print{.govuk-notification-banner{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-notification-banner{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-notification-banner{font-size:14pt;line-height:1.15}}@media (min-width: 40.0625em){.govuk-notification-banner{margin-bottom:50px}}.govuk-notification-banner:focus{outline:3px solid #ffdd00}.govuk-notification-banner__header{padding:2px 15px 5px;border-bottom:1px solid transparent}@media (min-width: 40.0625em){.govuk-notification-banner__header{padding:2px 20px 5px}}.govuk-notification-banner__title{font-size:1rem;line-height:1.25;font-weight:700;margin:0;padding:0;color:#fff}@media (min-width: 40.0625em){.govuk-notification-banner__title{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-notification-banner__title{font-size:14pt;line-height:1.15}}.govuk-notification-banner__content{color:#0b0c0c;padding:15px;background-color:#fff}@media print{.govuk-notification-banner__content{color:#000}}@media (min-width: 40.0625em){.govuk-notification-banner__content{padding:20px}}.govuk-notification-banner__content>*{box-sizing:border-box;max-width:605px}.govuk-notification-banner__content>:last-child{margin-bottom:0}.govuk-notification-banner__heading{font-size:1.125rem;line-height:1.1111111111;font-weight:700;margin:0 0 15px;padding:0}@media (min-width: 40.0625em){.govuk-notification-banner__heading{font-size:1.5rem;line-height:1.25}}@media print{.govuk-notification-banner__heading{font-size:18pt;line-height:1.15}}.govuk-notification-banner__link{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:underline;text-decoration-thickness:max(1px,.0625rem);text-underline-offset:.1578em}@media print{.govuk-notification-banner__link{font-family:sans-serif}}.govuk-notification-banner__link:hover{text-decoration-thickness:max(3px,.1875rem,.12em);-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;-webkit-text-decoration-skip:none;text-decoration-skip:none}.govuk-notification-banner__link:focus{outline:3px solid transparent;color:#0b0c0c;background-color:#fd0;box-shadow:0 -2px #fd0,0 4px #0b0c0c;text-decoration:none;-webkit-box-decoration-break:clone;box-decoration-break:clone}.govuk-notification-banner__link:link,.govuk-notification-banner__link:visited{color:#1d70b8}.govuk-notification-banner__link:hover{color:#003078}.govuk-notification-banner__link:active{color:#0b0c0c}.govuk-notification-banner__link:focus{color:#0b0c0c}.govuk-notification-banner--success{border-color:#00703c;background-color:#00703c}.govuk-notification-banner--success .govuk-notification-banner__link:link,.govuk-notification-banner--success .govuk-notification-banner__link:visited{color:#00703c}.govuk-notification-banner--success .govuk-notification-banner__link:hover{color:#004e2a}.govuk-notification-banner--success .govuk-notification-banner__link:active{color:#00703c}.govuk-notification-banner--success .govuk-notification-banner__link:focus{color:#0b0c0c}.govuk-pagination{margin-bottom:20px;display:flex;flex-direction:column;align-items:center;flex-wrap:wrap}@media (min-width: 40.0625em){.govuk-pagination{margin-bottom:30px}}@media (min-width: 40.0625em){.govuk-pagination{flex-direction:row;align-items:flex-start}}.govuk-pagination__list{margin:0;padding:0;list-style:none}.govuk-pagination__item,.govuk-pagination__next,.govuk-pagination__prev{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.25;box-sizing:border-box;position:relative;min-width:45px;min-height:45px;padding:10px 15px;float:left}@media print{.govuk-pagination__item,.govuk-pagination__next,.govuk-pagination__prev{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-pagination__item,.govuk-pagination__next,.govuk-pagination__prev{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-pagination__item,.govuk-pagination__next,.govuk-pagination__prev{font-size:14pt;line-height:1.15}}.govuk-pagination__item:hover,.govuk-pagination__next:hover,.govuk-pagination__prev:hover{background-color:#f3f2f1}.govuk-pagination__item{display:none;text-align:center}@media (min-width: 40.0625em){.govuk-pagination__item{display:block}}.govuk-pagination__prev,.govuk-pagination__next{font-weight:700}.govuk-pagination__prev .govuk-pagination__link,.govuk-pagination__next .govuk-pagination__link{display:flex;align-items:center}.govuk-pagination__prev{padding-left:0}.govuk-pagination__next{padding-right:0}.govuk-pagination__item--current,.govuk-pagination__item--ellipses,.govuk-pagination__item:first-child,.govuk-pagination__item:last-child{display:block}.govuk-pagination__item--current{font-weight:700;outline:1px solid transparent;background-color:#1d70b8}.govuk-pagination__item--current:hover{background-color:#1d70b8}.govuk-pagination__item--current .govuk-pagination__link:link,.govuk-pagination__item--current .govuk-pagination__link:visited{color:#fff}.govuk-pagination__item--current .govuk-pagination__link:hover,.govuk-pagination__item--current .govuk-pagination__link:active{color:rgba(255,255,255,.99)}.govuk-pagination__item--current .govuk-pagination__link:focus{color:#0b0c0c}.govuk-pagination__item--ellipses{font-weight:700;color:#505a5f}.govuk-pagination__item--ellipses:hover{background-color:transparent}.govuk-pagination__link{display:block;min-width:15px}@media screen{.govuk-pagination__link:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0}}.govuk-pagination__link:hover .govuk-pagination__link-title--decorated,.govuk-pagination__link:active .govuk-pagination__link-title--decorated{text-decoration:underline;text-decoration-thickness:max(1px,.0625rem);text-underline-offset:.1578em}.govuk-pagination__link:hover .govuk-pagination__link-label,.govuk-pagination__link:hover .govuk-pagination__link-title--decorated,.govuk-pagination__link:active .govuk-pagination__link-label,.govuk-pagination__link:active .govuk-pagination__link-title--decorated{text-decoration-thickness:max(3px,.1875rem,.12em);-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;-webkit-text-decoration-skip:none;text-decoration-skip:none}.govuk-pagination__link:focus .govuk-pagination__icon{color:#0b0c0c}.govuk-pagination__link:focus .govuk-pagination__link-label{text-decoration:none}.govuk-pagination__link:focus .govuk-pagination__link-title--decorated{text-decoration:none}.govuk-pagination__link-label{font-weight:400;text-decoration:underline;text-decoration-thickness:max(1px,.0625rem);text-underline-offset:.1578em;display:inline-block;padding-left:30px}.govuk-pagination__icon{width:.9375rem;height:.8125rem;color:#505a5f;fill:currentcolor;forced-color-adjust:auto}.govuk-pagination__icon--prev{margin-right:15px}.govuk-pagination__icon--next{margin-left:15px}.govuk-pagination--block{display:block}.govuk-pagination--block .govuk-pagination__item{padding:15px;float:none}.govuk-pagination--block .govuk-pagination__next,.govuk-pagination--block .govuk-pagination__prev{padding-left:0;float:none}.govuk-pagination--block .govuk-pagination__next{padding-right:15px}.govuk-pagination--block .govuk-pagination__next .govuk-pagination__icon{margin-left:0}.govuk-pagination--block .govuk-pagination__prev+.govuk-pagination__next{border-top:1px solid #b1b4b6}.govuk-pagination--block .govuk-pagination__link,.govuk-pagination--block .govuk-pagination__link-title{display:inline}.govuk-pagination--block .govuk-pagination__link-title:after{content:"";display:block}.govuk-pagination--block .govuk-pagination__link{text-align:left}.govuk-pagination--block .govuk-pagination__link:focus .govuk-pagination__link-label{outline:3px solid transparent;color:#0b0c0c;background-color:#fd0;box-shadow:0 -2px #fd0,0 4px #0b0c0c;text-decoration:none;-webkit-box-decoration-break:clone;box-decoration-break:clone}.govuk-pagination--block .govuk-pagination__link:not(:focus){text-decoration:none}.govuk-pagination--block .govuk-pagination__icon{margin-right:10px}.govuk-panel{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1.5rem;line-height:1.0416666667;box-sizing:border-box;margin-bottom:15px;padding:35px;border:5px solid transparent;text-align:center}@media print{.govuk-panel{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-panel{font-size:2.25rem;line-height:1.1111111111}}@media print{.govuk-panel{font-size:24pt;line-height:1.05}}@media (max-width: 40.0525em){.govuk-panel{padding:10px;overflow-wrap:break-word;word-wrap:break-word}}.govuk-panel--confirmation{color:#fff;background:#00703c}@media print{.govuk-panel--confirmation{border-color:currentcolor;color:#000;background:none}}.govuk-panel__title{font-size:2rem;line-height:1.09375;font-weight:700;margin-top:0;margin-bottom:30px}@media (min-width: 40.0625em){.govuk-panel__title{font-size:3rem;line-height:1.0416666667}}@media print{.govuk-panel__title{font-size:32pt;line-height:1.15}}.govuk-panel__title:last-child{margin-bottom:0}.govuk-tag{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.25;display:inline-block;max-width:160px;margin-top:-2px;margin-bottom:-3px;padding:2px 8px 3px;color:#0c2d4a;background-color:#bbd4ea;text-decoration:none;overflow-wrap:break-word}@media print{.govuk-tag{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-tag{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-tag{font-size:14pt;line-height:1.15}}@media screen and (forced-colors: active){.govuk-tag{font-weight:700}}.govuk-tag--grey{color:#282d30;background-color:#e5e6e7}.govuk-tag--purple{color:#491644;background-color:#efdfed}.govuk-tag--turquoise{color:#10403c;background-color:#d4ecea}.govuk-tag--blue{color:#0c2d4a;background-color:#bbd4ea}.govuk-tag--light-blue{color:#0c2d4a;background-color:#e8f1f8}.govuk-tag--yellow{color:#594d00;background-color:#fff7bf}.govuk-tag--orange{color:#6e3619;background-color:#fcd6c3}.govuk-tag--red{color:#2a0b06;background-color:#f4cdc6}.govuk-tag--pink{color:#6b1c40;background-color:#f9e1ec}.govuk-tag--green{color:#005a30;background-color:#cce2d8}.govuk-phase-banner{padding-top:10px;padding-bottom:10px;border-bottom:1px solid #b1b4b6}.govuk-phase-banner__content{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:.875rem;line-height:1.1428571429;color:#0b0c0c;display:table;margin:0}@media print{.govuk-phase-banner__content{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-phase-banner__content{font-size:1rem;line-height:1.25}}@media print{.govuk-phase-banner__content{font-size:14pt;line-height:1.2}}@media print{.govuk-phase-banner__content{color:#000}}.govuk-phase-banner__content__tag{font-size:.875rem;line-height:1.1428571429;margin-right:10px}@media (min-width: 40.0625em){.govuk-phase-banner__content__tag{font-size:1rem;line-height:1.25}}@media print{.govuk-phase-banner__content__tag{font-size:14pt;line-height:1.2}}@media screen and (forced-colors: active){.govuk-phase-banner__content__tag{font-weight:700}}.govuk-phase-banner__text{display:table-cell;vertical-align:middle}.govuk-radios__item{display:flex;flex-wrap:wrap;position:relative;margin-bottom:10px}.govuk-radios__item:last-child,.govuk-radios__item:last-of-type{margin-bottom:0}.govuk-radios__input{width:44px;height:44px;margin:0;opacity:0;cursor:pointer}.govuk-radios__label{align-self:center;max-width:calc(100% - 74px);margin-bottom:0;padding:7px 15px;cursor:pointer;touch-action:manipulation}.govuk-radios__label:before{content:"";box-sizing:border-box;position:absolute;top:2px;left:2px;width:40px;height:40px;border:2px solid currentcolor;border-radius:50%;background:transparent}.govuk-radios__label:after{content:"";position:absolute;top:12px;left:12px;width:0;height:0;border:10px solid currentcolor;border-radius:50%;opacity:0;background:currentcolor}.govuk-radios__hint{display:block;width:100%;margin-top:-5px;padding-right:15px;padding-left:59px}.govuk-label:not(.govuk-label--m):not(.govuk-label--l):not(.govuk-label--xl)+.govuk-radios__hint{margin-bottom:0}.govuk-radios__input:focus+.govuk-radios__label:before{border-width:4px;outline:3px solid transparent;outline-offset:1px;box-shadow:0 0 0 4px #fd0}@media screen and (forced-colors: active),(-ms-high-contrast: active){.govuk-radios__input:focus+.govuk-radios__label:before{outline-color:Highlight}}.govuk-radios__input:checked+.govuk-radios__label:after{opacity:1}.govuk-radios__input:disabled,.govuk-radios__input:disabled+.govuk-radios__label{cursor:not-allowed}.govuk-radios__input:disabled+.govuk-radios__label,.govuk-radios__input:disabled~.govuk-hint{opacity:.5}@media (min-width: 40.0625em){.govuk-radios--inline{display:flex;flex-wrap:wrap;align-items:flex-start}.govuk-radios--inline .govuk-radios__item{margin-right:20px}}.govuk-radios__divider{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.25;color:#0b0c0c;width:40px;margin-bottom:10px;text-align:center}@media print{.govuk-radios__divider{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-radios__divider{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-radios__divider{font-size:14pt;line-height:1.15}}@media print{.govuk-radios__divider{color:#000}}.govuk-radios__conditional{margin-bottom:15px;margin-left:18px;padding-left:33px;border-left:4px solid #b1b4b6}@media (min-width: 40.0625em){.govuk-radios__conditional{margin-bottom:20px}}.govuk-frontend-supported .govuk-radios__conditional--hidden{display:none}.govuk-radios__conditional>:last-child{margin-bottom:0}.govuk-radios--small .govuk-radios__item{margin-bottom:0}.govuk-radios--small .govuk-radios__input{margin-left:-10px}.govuk-radios--small .govuk-radios__label{padding-left:1px}.govuk-radios--small .govuk-radios__label:before{top:10px;left:0;width:24px;height:24px}.govuk-radios--small .govuk-radios__label:after{top:17px;left:7px;border-width:5px}.govuk-radios--small .govuk-radios__hint{padding-left:34px}.govuk-radios--small .govuk-radios__conditional{margin-left:10px;padding-left:20px}.govuk-radios--small .govuk-radios__divider{width:24px;margin-bottom:5px}.govuk-radios--small .govuk-radios__item:hover .govuk-radios__input:not(:disabled)+.govuk-radios__label:before{outline:4px dashed transparent;outline-offset:1px;box-shadow:0 0 0 10px #b1b4b6}.govuk-radios--small .govuk-radios__item:hover .govuk-radios__input:focus+.govuk-radios__label:before{box-shadow:0 0 0 4px #fd0 0 0 0 10px #b1b4b6}@media screen and (forced-colors: active),(-ms-high-contrast: active){.govuk-radios--small .govuk-radios__item:hover .govuk-radios__input:focus+.govuk-radios__label:before{outline-color:Highlight}}@media (hover: none),(pointer: coarse){.govuk-radios--small .govuk-radios__item:hover .govuk-radios__input:not(:disabled)+.govuk-radios__label:before{box-shadow:initial}.govuk-radios--small .govuk-radios__item:hover .govuk-radios__input:focus+.govuk-radios__label:before{box-shadow:0 0 0 4px #fd0}}.govuk-select{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.25;box-sizing:border-box;min-width:11.5em;max-width:100%;height:2.5rem;padding:5px;border:2px solid #0b0c0c;color:#0b0c0c;background-color:#fff}@media print{.govuk-select{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-select{font-size:1.1875rem;line-height:1.25}}@media print{.govuk-select{font-size:14pt;line-height:1.25}}.govuk-select:focus{outline:3px solid #ffdd00;outline-offset:0;box-shadow:inset 0 0 0 2px}.govuk-select:disabled{opacity:.5;color:inherit;cursor:not-allowed}.govuk-select option:active,.govuk-select option:checked,.govuk-select:focus::-ms-value{color:#fff;background-color:#1d70b8}.govuk-select--error{border-color:#d4351c}.govuk-select--error:focus{border-color:#0b0c0c}.govuk-skip-link{position:absolute!important;width:1px!important;height:1px!important;margin:0!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;-webkit-clip-path:inset(50%)!important;clip-path:inset(50%)!important;white-space:nowrap!important;-webkit-user-select:none;-ms-user-select:none;-moz-user-select:-moz-none;user-select:none;font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:underline;text-decoration-thickness:max(1px,.0625rem);text-underline-offset:.1578em;font-size:.875rem;line-height:1.1428571429;display:block;padding:10px 15px}.govuk-skip-link:active,.govuk-skip-link:focus{position:static!important;width:auto!important;height:auto!important;margin:inherit!important;overflow:visible!important;clip:auto!important;-webkit-clip-path:none!important;clip-path:none!important;white-space:inherit!important;-webkit-user-select:text;-ms-user-select:text;-moz-user-select:text;user-select:text}@media print{.govuk-skip-link{font-family:sans-serif}}.govuk-skip-link:link,.govuk-skip-link:visited{color:#0b0c0c}@media print{.govuk-skip-link:link,.govuk-skip-link:visited{color:#000}}.govuk-skip-link:hover{color:rgba(11,12,12,.99)}.govuk-skip-link:active,.govuk-skip-link:focus{color:#0b0c0c}@media print{.govuk-skip-link:active,.govuk-skip-link:focus{color:#000}}@media (min-width: 40.0625em){.govuk-skip-link{font-size:1rem;line-height:1.25}}@media print{.govuk-skip-link{font-size:14pt;line-height:1.2}}@supports (padding: max(0px)){.govuk-skip-link{padding-right:max(15px,calc(15px + env(safe-area-inset-right)));padding-left:max(15px,calc(15px + env(safe-area-inset-left)))}}.govuk-skip-link:focus{outline:3px solid #ffdd00;outline-offset:0;background-color:#fd0}.govuk-skip-link-focused-element:focus{outline:none}.govuk-summary-list{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.25;color:#0b0c0c;margin:0 0 20px}@media print{.govuk-summary-list{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-summary-list{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-summary-list{font-size:14pt;line-height:1.15}}@media print{.govuk-summary-list{color:#000}}@media (min-width: 40.0625em){.govuk-summary-list{display:table;width:100%;table-layout:fixed;border-collapse:collapse}}@media (min-width: 40.0625em){.govuk-summary-list{margin-bottom:30px}}.govuk-summary-list__row{border-bottom:1px solid #b1b4b6}@media (max-width: 40.0525em){.govuk-summary-list__row{margin-bottom:15px}}@media (min-width: 40.0625em){.govuk-summary-list__row{display:table-row}}.govuk-summary-list__row:not(.govuk-summary-list__row--no-actions)>:last-child{padding-right:0}@media (min-width: 40.0625em){.govuk-summary-list__row--no-actions:after{content:"";display:table-cell;width:20%}}.govuk-summary-list__key,.govuk-summary-list__value,.govuk-summary-list__actions{margin:0}@media (min-width: 40.0625em){.govuk-summary-list__key,.govuk-summary-list__value,.govuk-summary-list__actions{display:table-cell;padding-top:10px;padding-right:20px;padding-bottom:10px}}.govuk-summary-list__actions{margin-bottom:15px}@media (min-width: 40.0625em){.govuk-summary-list__actions{width:20%;text-align:right}}.govuk-summary-list__key,.govuk-summary-list__value{word-wrap:break-word;overflow-wrap:break-word}.govuk-summary-list__key{margin-bottom:5px;font-weight:700}@media (min-width: 40.0625em){.govuk-summary-list__key{width:30%}}@media (max-width: 40.0525em){.govuk-summary-list__value{margin-bottom:15px}}.govuk-summary-list__value>p{margin-bottom:10px}.govuk-summary-list__value>:last-child{margin-bottom:0}.govuk-summary-list__actions-list{width:100%;margin:0;padding:0}.govuk-summary-list__actions-list-item{display:inline-block}@media (max-width: 40.0525em){.govuk-summary-list__actions-list-item{margin-right:10px;padding-right:10px;border-right:1px solid #b1b4b6}.govuk-summary-list__actions-list-item:last-child{margin-right:0;padding-right:0;border:0}}@media (min-width: 40.0625em){.govuk-summary-list__actions-list-item{margin-left:10px;padding-left:10px}.govuk-summary-list__actions-list-item:not(:first-child){border-left:1px solid #b1b4b6}.govuk-summary-list__actions-list-item:first-child{margin-left:0;padding-left:0;border:0}}.govuk-summary-list__actions-list-item .govuk-link:focus{isolation:isolate}.govuk-summary-list--no-border .govuk-summary-list__row{border:0}@media (min-width: 40.0625em){.govuk-summary-list--no-border .govuk-summary-list__key,.govuk-summary-list--no-border .govuk-summary-list__value,.govuk-summary-list--no-border .govuk-summary-list__actions{padding-bottom:11px}}.govuk-summary-list__row--no-border{border:0}@media (min-width: 40.0625em){.govuk-summary-list__row--no-border .govuk-summary-list__key,.govuk-summary-list__row--no-border .govuk-summary-list__value,.govuk-summary-list__row--no-border .govuk-summary-list__actions{padding-bottom:11px}}.govuk-summary-card{margin-bottom:20px;border:1px solid #b1b4b6}@media (min-width: 40.0625em){.govuk-summary-card{margin-bottom:30px}}.govuk-summary-card__title-wrapper{padding:15px;border-bottom:1px solid transparent;background-color:#f3f2f1}@media (min-width: 40.0625em){.govuk-summary-card__title-wrapper{display:flex;justify-content:space-between;flex-wrap:nowrap;padding:15px 20px}}.govuk-summary-card__title{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:700;font-size:1rem;line-height:1.25;color:#0b0c0c;margin:5px 20px 10px 0}@media print{.govuk-summary-card__title{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-summary-card__title{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-summary-card__title{font-size:14pt;line-height:1.15}}@media print{.govuk-summary-card__title{color:#000}}@media (min-width: 40.0625em){.govuk-summary-card__title{margin-bottom:5px}}.govuk-summary-card__actions{font-size:1rem;line-height:1.25;font-weight:700;display:flex;flex-wrap:wrap;row-gap:10px;margin:5px 0;padding:0;list-style:none}@media (min-width: 40.0625em){.govuk-summary-card__actions{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-summary-card__actions{font-size:14pt;line-height:1.15}}@media (min-width: 40.0625em){.govuk-summary-card__actions{justify-content:right;text-align:right}}.govuk-summary-card__action{display:inline;margin:0 10px 0 0;padding-right:10px;border-right:1px solid #b1b4b6}@media (min-width: 40.0625em){.govuk-summary-card__action{margin-right:0}}@media screen and (-ms-high-contrast: active),(-ms-high-contrast: none){.govuk-summary-card__action{margin-bottom:5px}}.govuk-summary-card__action:last-child{margin:0;padding-right:0;border-right:none}@media (min-width: 40.0625em){.govuk-summary-card__action:last-child{padding-left:10px}}@media screen and (-ms-high-contrast: active),(-ms-high-contrast: none){.govuk-summary-card__action:last-child{margin-bottom:0}}.govuk-summary-card__content{padding:15px 15px 0}@media (min-width: 40.0625em){.govuk-summary-card__content{padding:15px 20px}}.govuk-summary-card__content .govuk-summary-list{margin-bottom:0}.govuk-summary-card__content .govuk-summary-list__row:last-of-type{margin-bottom:0;border-bottom:none}.govuk-table{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.25;color:#0b0c0c;width:100%;margin-bottom:20px;border-spacing:0;border-collapse:collapse}@media print{.govuk-table{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-table{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-table{font-size:14pt;line-height:1.15}}@media print{.govuk-table{color:#000}}@media (min-width: 40.0625em){.govuk-table{margin-bottom:30px}}.govuk-table__header{font-weight:700}.govuk-table__header,.govuk-table__cell{padding:10px 20px 10px 0;border-bottom:1px solid #b1b4b6;text-align:left;vertical-align:top}.govuk-table__cell--numeric{font-variant-numeric:tabular-nums}.govuk-table__header--numeric,.govuk-table__cell--numeric{text-align:right}.govuk-table__header:last-child,.govuk-table__cell:last-child{padding-right:0}.govuk-table__caption{font-weight:700;display:table-caption;text-align:left}.govuk-table__caption--xl,.govuk-table__caption--l,.govuk-table__caption--m{margin-bottom:15px}.govuk-table__caption--xl{font-size:2rem;line-height:1.09375}@media (min-width: 40.0625em){.govuk-table__caption--xl{font-size:3rem;line-height:1.0416666667}}@media print{.govuk-table__caption--xl{font-size:32pt;line-height:1.15}}.govuk-table__caption--l{font-size:1.5rem;line-height:1.0416666667}@media (min-width: 40.0625em){.govuk-table__caption--l{font-size:2.25rem;line-height:1.1111111111}}@media print{.govuk-table__caption--l{font-size:24pt;line-height:1.05}}.govuk-table__caption--m{font-size:1.125rem;line-height:1.1111111111}@media (min-width: 40.0625em){.govuk-table__caption--m{font-size:1.5rem;line-height:1.25}}@media print{.govuk-table__caption--m{font-size:18pt;line-height:1.15}}.govuk-tabs{margin-top:5px;margin-bottom:20px;font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.25}@media (min-width: 40.0625em){.govuk-tabs{margin-bottom:30px}}@media print{.govuk-tabs{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-tabs{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-tabs{font-size:14pt;line-height:1.15}}.govuk-tabs__title{font-size:1rem;line-height:1.25;font-weight:400;color:#0b0c0c;margin-bottom:10px}@media (min-width: 40.0625em){.govuk-tabs__title{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-tabs__title{font-size:14pt;line-height:1.15}}@media print{.govuk-tabs__title{color:#000}}.govuk-tabs__list{margin:0 0 20px;padding:0;list-style:none}@media (min-width: 40.0625em){.govuk-tabs__list{margin-bottom:30px}}.govuk-tabs__list-item{margin-left:25px}.govuk-tabs__list-item:before{color:#0b0c0c;content:"\2014";margin-left:-25px;padding-right:5px}@media print{.govuk-tabs__list-item:before{color:#000}}.govuk-tabs__tab{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:underline;text-decoration-thickness:max(1px,.0625rem);text-underline-offset:.1578em;display:inline-block;margin-bottom:10px}@media print{.govuk-tabs__tab{font-family:sans-serif}}.govuk-tabs__tab:hover{text-decoration-thickness:max(3px,.1875rem,.12em);-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;-webkit-text-decoration-skip:none;text-decoration-skip:none}.govuk-tabs__tab:focus{outline:3px solid transparent;color:#0b0c0c;background-color:#fd0;box-shadow:0 -2px #fd0,0 4px #0b0c0c;text-decoration:none;-webkit-box-decoration-break:clone;box-decoration-break:clone}.govuk-tabs__tab:link{color:#1d70b8}.govuk-tabs__tab:visited{color:#4c2c92}.govuk-tabs__tab:hover{color:#003078}.govuk-tabs__tab:active{color:#0b0c0c}.govuk-tabs__tab:focus{color:#0b0c0c}.govuk-tabs__panel{margin-bottom:30px}@media (min-width: 40.0625em){.govuk-tabs__panel{margin-bottom:50px}}@media (min-width: 40.0625em){.govuk-frontend-supported .govuk-tabs__list{margin-bottom:0;border-bottom:1px solid #b1b4b6}.govuk-frontend-supported .govuk-tabs__list:after{content:"";display:block;clear:both}.govuk-frontend-supported .govuk-tabs__title{display:none}.govuk-frontend-supported .govuk-tabs__list-item{position:relative;margin-right:5px;margin-bottom:0;margin-left:0;padding:10px 20px;float:left;background-color:#f3f2f1;text-align:center}.govuk-frontend-supported .govuk-tabs__list-item:before{content:none}.govuk-frontend-supported .govuk-tabs__list-item--selected{position:relative;margin-top:-5px;margin-bottom:-1px;padding:14px 19px 16px;border:1px solid #b1b4b6;border-bottom:0;background-color:#fff}.govuk-frontend-supported .govuk-tabs__list-item--selected .govuk-tabs__tab{text-decoration:none}.govuk-frontend-supported .govuk-tabs__tab{margin-bottom:0}.govuk-frontend-supported .govuk-tabs__tab:link,.govuk-frontend-supported .govuk-tabs__tab:visited{color:#0b0c0c}}@media print and (min-width: 40.0625em){.govuk-frontend-supported .govuk-tabs__tab:link,.govuk-frontend-supported .govuk-tabs__tab:visited{color:#000}}@media (min-width: 40.0625em){.govuk-frontend-supported .govuk-tabs__tab:hover{color:rgba(11,12,12,.99)}.govuk-frontend-supported .govuk-tabs__tab:active,.govuk-frontend-supported .govuk-tabs__tab:focus{color:#0b0c0c}}@media print and (min-width: 40.0625em){.govuk-frontend-supported .govuk-tabs__tab:active,.govuk-frontend-supported .govuk-tabs__tab:focus{color:#000}}@media (min-width: 40.0625em){.govuk-frontend-supported .govuk-tabs__tab:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0}.govuk-frontend-supported .govuk-tabs__panel{margin-bottom:0;padding:30px 20px;border:1px solid #b1b4b6;border-top:0}.govuk-frontend-supported .govuk-tabs__panel>:last-child{margin-bottom:0}.govuk-frontend-supported .govuk-tabs__panel--hidden{display:none}}.govuk-task-list{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.25;margin-top:0;margin-bottom:20px;padding:0;list-style-type:none}@media print{.govuk-task-list{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-task-list{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-task-list{font-size:14pt;line-height:1.15}}@media (min-width: 40.0625em){.govuk-task-list{margin-bottom:30px}}.govuk-task-list__item{display:table;position:relative;width:100%;margin-bottom:0;padding-top:10px;padding-bottom:10px;border-bottom:1px solid #b1b4b6}.govuk-task-list__item:first-child{border-top:1px solid #b1b4b6}.govuk-task-list__item--with-link:hover{background:#f3f2f1}.govuk-task-list__name-and-hint{display:table-cell;vertical-align:top;color:#0b0c0c}@media print{.govuk-task-list__name-and-hint{color:#000}}.govuk-task-list__status{display:table-cell;padding-left:10px;text-align:right;vertical-align:top;color:#0b0c0c}@media print{.govuk-task-list__status{color:#000}}.govuk-task-list__status--cannot-start-yet{color:#505a5f}.govuk-task-list__link:after{content:"";display:block;position:absolute;top:0;right:0;bottom:0;left:0}.govuk-task-list__hint{margin-top:5px;color:#505a5f}.govuk-warning-text{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.25;margin-bottom:20px;position:relative;padding:10px 0}@media print{.govuk-warning-text{font-family:sans-serif}}@media (min-width: 40.0625em){.govuk-warning-text{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-warning-text{font-size:14pt;line-height:1.15}}@media (min-width: 40.0625em){.govuk-warning-text{margin-bottom:30px}}.govuk-warning-text__icon{font-weight:700;box-sizing:border-box;display:inline-block;position:absolute;left:0;min-width:35px;min-height:35px;margin-top:-7px;border:3px solid #0b0c0c;border-radius:50%;color:#fff;background:#0b0c0c;font-size:30px;line-height:29px;text-align:center;-webkit-user-select:none;-ms-user-select:none;-moz-user-select:-moz-none;user-select:none;forced-color-adjust:none}@media (min-width: 40.0625em){.govuk-warning-text__icon{margin-top:-5px}}@media screen and (forced-colors: active){.govuk-warning-text__icon{border-color:windowText;color:windowText;background:transparent}}.govuk-warning-text__text{color:#0b0c0c;display:block;padding-left:45px}@media print{.govuk-warning-text__text{color:#000}}.govuk-clearfix:after{content:"";display:block;clear:both}.govuk-visually-hidden{position:absolute!important;width:1px!important;height:1px!important;margin:0!important;padding:0!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;-webkit-clip-path:inset(50%)!important;clip-path:inset(50%)!important;border:0!important;white-space:nowrap!important;-webkit-user-select:none;-ms-user-select:none;-moz-user-select:-moz-none;user-select:none}.govuk-visually-hidden:before{content:"\a0"}.govuk-visually-hidden:after{content:"\a0"}.govuk-visually-hidden-focusable{position:absolute!important;width:1px!important;height:1px!important;margin:0!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;-webkit-clip-path:inset(50%)!important;clip-path:inset(50%)!important;white-space:nowrap!important;-webkit-user-select:none;-ms-user-select:none;-moz-user-select:-moz-none;user-select:none}.govuk-visually-hidden-focusable:active,.govuk-visually-hidden-focusable:focus{position:static!important;width:auto!important;height:auto!important;margin:inherit!important;overflow:visible!important;clip:auto!important;-webkit-clip-path:none!important;clip-path:none!important;white-space:inherit!important;-webkit-user-select:text;-ms-user-select:text;-moz-user-select:text;user-select:text}.govuk-\!-display-inline{display:inline!important}.govuk-\!-display-inline-block{display:inline-block!important}.govuk-\!-display-block{display:block!important}.govuk-\!-display-none{display:none!important}@media print{.govuk-\!-display-none-print{display:none!important}}.govuk-\!-margin-0{margin:0!important}.govuk-\!-margin-top-0{margin-top:0!important}.govuk-\!-margin-right-0{margin-right:0!important}.govuk-\!-margin-bottom-0{margin-bottom:0!important}.govuk-\!-margin-left-0{margin-left:0!important}.govuk-\!-margin-1{margin:5px!important}.govuk-\!-margin-top-1{margin-top:5px!important}.govuk-\!-margin-right-1{margin-right:5px!important}.govuk-\!-margin-bottom-1{margin-bottom:5px!important}.govuk-\!-margin-left-1{margin-left:5px!important}.govuk-\!-margin-2{margin:10px!important}.govuk-\!-margin-top-2{margin-top:10px!important}.govuk-\!-margin-right-2{margin-right:10px!important}.govuk-\!-margin-bottom-2{margin-bottom:10px!important}.govuk-\!-margin-left-2{margin-left:10px!important}.govuk-\!-margin-3{margin:15px!important}.govuk-\!-margin-top-3{margin-top:15px!important}.govuk-\!-margin-right-3{margin-right:15px!important}.govuk-\!-margin-bottom-3{margin-bottom:15px!important}.govuk-\!-margin-left-3{margin-left:15px!important}.govuk-\!-margin-4{margin:15px!important}@media (min-width: 40.0625em){.govuk-\!-margin-4{margin:20px!important}}.govuk-\!-margin-top-4{margin-top:15px!important}@media (min-width: 40.0625em){.govuk-\!-margin-top-4{margin-top:20px!important}}.govuk-\!-margin-right-4{margin-right:15px!important}@media (min-width: 40.0625em){.govuk-\!-margin-right-4{margin-right:20px!important}}.govuk-\!-margin-bottom-4{margin-bottom:15px!important}@media (min-width: 40.0625em){.govuk-\!-margin-bottom-4{margin-bottom:20px!important}}.govuk-\!-margin-left-4{margin-left:15px!important}@media (min-width: 40.0625em){.govuk-\!-margin-left-4{margin-left:20px!important}}.govuk-\!-margin-5{margin:15px!important}@media (min-width: 40.0625em){.govuk-\!-margin-5{margin:25px!important}}.govuk-\!-margin-top-5{margin-top:15px!important}@media (min-width: 40.0625em){.govuk-\!-margin-top-5{margin-top:25px!important}}.govuk-\!-margin-right-5{margin-right:15px!important}@media (min-width: 40.0625em){.govuk-\!-margin-right-5{margin-right:25px!important}}.govuk-\!-margin-bottom-5{margin-bottom:15px!important}@media (min-width: 40.0625em){.govuk-\!-margin-bottom-5{margin-bottom:25px!important}}.govuk-\!-margin-left-5{margin-left:15px!important}@media (min-width: 40.0625em){.govuk-\!-margin-left-5{margin-left:25px!important}}.govuk-\!-margin-6{margin:20px!important}@media (min-width: 40.0625em){.govuk-\!-margin-6{margin:30px!important}}.govuk-\!-margin-top-6{margin-top:20px!important}@media (min-width: 40.0625em){.govuk-\!-margin-top-6{margin-top:30px!important}}.govuk-\!-margin-right-6{margin-right:20px!important}@media (min-width: 40.0625em){.govuk-\!-margin-right-6{margin-right:30px!important}}.govuk-\!-margin-bottom-6{margin-bottom:20px!important}@media (min-width: 40.0625em){.govuk-\!-margin-bottom-6{margin-bottom:30px!important}}.govuk-\!-margin-left-6{margin-left:20px!important}@media (min-width: 40.0625em){.govuk-\!-margin-left-6{margin-left:30px!important}}.govuk-\!-margin-7{margin:25px!important}@media (min-width: 40.0625em){.govuk-\!-margin-7{margin:40px!important}}.govuk-\!-margin-top-7{margin-top:25px!important}@media (min-width: 40.0625em){.govuk-\!-margin-top-7{margin-top:40px!important}}.govuk-\!-margin-right-7{margin-right:25px!important}@media (min-width: 40.0625em){.govuk-\!-margin-right-7{margin-right:40px!important}}.govuk-\!-margin-bottom-7{margin-bottom:25px!important}@media (min-width: 40.0625em){.govuk-\!-margin-bottom-7{margin-bottom:40px!important}}.govuk-\!-margin-left-7{margin-left:25px!important}@media (min-width: 40.0625em){.govuk-\!-margin-left-7{margin-left:40px!important}}.govuk-\!-margin-8{margin:30px!important}@media (min-width: 40.0625em){.govuk-\!-margin-8{margin:50px!important}}.govuk-\!-margin-top-8{margin-top:30px!important}@media (min-width: 40.0625em){.govuk-\!-margin-top-8{margin-top:50px!important}}.govuk-\!-margin-right-8{margin-right:30px!important}@media (min-width: 40.0625em){.govuk-\!-margin-right-8{margin-right:50px!important}}.govuk-\!-margin-bottom-8{margin-bottom:30px!important}@media (min-width: 40.0625em){.govuk-\!-margin-bottom-8{margin-bottom:50px!important}}.govuk-\!-margin-left-8{margin-left:30px!important}@media (min-width: 40.0625em){.govuk-\!-margin-left-8{margin-left:50px!important}}.govuk-\!-margin-9{margin:40px!important}@media (min-width: 40.0625em){.govuk-\!-margin-9{margin:60px!important}}.govuk-\!-margin-top-9{margin-top:40px!important}@media (min-width: 40.0625em){.govuk-\!-margin-top-9{margin-top:60px!important}}.govuk-\!-margin-right-9{margin-right:40px!important}@media (min-width: 40.0625em){.govuk-\!-margin-right-9{margin-right:60px!important}}.govuk-\!-margin-bottom-9{margin-bottom:40px!important}@media (min-width: 40.0625em){.govuk-\!-margin-bottom-9{margin-bottom:60px!important}}.govuk-\!-margin-left-9{margin-left:40px!important}@media (min-width: 40.0625em){.govuk-\!-margin-left-9{margin-left:60px!important}}.govuk-\!-padding-0{padding:0!important}.govuk-\!-padding-top-0{padding-top:0!important}.govuk-\!-padding-right-0{padding-right:0!important}.govuk-\!-padding-bottom-0{padding-bottom:0!important}.govuk-\!-padding-left-0{padding-left:0!important}.govuk-\!-padding-1{padding:5px!important}.govuk-\!-padding-top-1{padding-top:5px!important}.govuk-\!-padding-right-1{padding-right:5px!important}.govuk-\!-padding-bottom-1{padding-bottom:5px!important}.govuk-\!-padding-left-1{padding-left:5px!important}.govuk-\!-padding-2{padding:10px!important}.govuk-\!-padding-top-2{padding-top:10px!important}.govuk-\!-padding-right-2{padding-right:10px!important}.govuk-\!-padding-bottom-2{padding-bottom:10px!important}.govuk-\!-padding-left-2{padding-left:10px!important}.govuk-\!-padding-3{padding:15px!important}.govuk-\!-padding-top-3{padding-top:15px!important}.govuk-\!-padding-right-3{padding-right:15px!important}.govuk-\!-padding-bottom-3{padding-bottom:15px!important}.govuk-\!-padding-left-3{padding-left:15px!important}.govuk-\!-padding-4{padding:15px!important}@media (min-width: 40.0625em){.govuk-\!-padding-4{padding:20px!important}}.govuk-\!-padding-top-4{padding-top:15px!important}@media (min-width: 40.0625em){.govuk-\!-padding-top-4{padding-top:20px!important}}.govuk-\!-padding-right-4{padding-right:15px!important}@media (min-width: 40.0625em){.govuk-\!-padding-right-4{padding-right:20px!important}}.govuk-\!-padding-bottom-4{padding-bottom:15px!important}@media (min-width: 40.0625em){.govuk-\!-padding-bottom-4{padding-bottom:20px!important}}.govuk-\!-padding-left-4{padding-left:15px!important}@media (min-width: 40.0625em){.govuk-\!-padding-left-4{padding-left:20px!important}}.govuk-\!-padding-5{padding:15px!important}@media (min-width: 40.0625em){.govuk-\!-padding-5{padding:25px!important}}.govuk-\!-padding-top-5{padding-top:15px!important}@media (min-width: 40.0625em){.govuk-\!-padding-top-5{padding-top:25px!important}}.govuk-\!-padding-right-5{padding-right:15px!important}@media (min-width: 40.0625em){.govuk-\!-padding-right-5{padding-right:25px!important}}.govuk-\!-padding-bottom-5{padding-bottom:15px!important}@media (min-width: 40.0625em){.govuk-\!-padding-bottom-5{padding-bottom:25px!important}}.govuk-\!-padding-left-5{padding-left:15px!important}@media (min-width: 40.0625em){.govuk-\!-padding-left-5{padding-left:25px!important}}.govuk-\!-padding-6{padding:20px!important}@media (min-width: 40.0625em){.govuk-\!-padding-6{padding:30px!important}}.govuk-\!-padding-top-6{padding-top:20px!important}@media (min-width: 40.0625em){.govuk-\!-padding-top-6{padding-top:30px!important}}.govuk-\!-padding-right-6{padding-right:20px!important}@media (min-width: 40.0625em){.govuk-\!-padding-right-6{padding-right:30px!important}}.govuk-\!-padding-bottom-6{padding-bottom:20px!important}@media (min-width: 40.0625em){.govuk-\!-padding-bottom-6{padding-bottom:30px!important}}.govuk-\!-padding-left-6{padding-left:20px!important}@media (min-width: 40.0625em){.govuk-\!-padding-left-6{padding-left:30px!important}}.govuk-\!-padding-7{padding:25px!important}@media (min-width: 40.0625em){.govuk-\!-padding-7{padding:40px!important}}.govuk-\!-padding-top-7{padding-top:25px!important}@media (min-width: 40.0625em){.govuk-\!-padding-top-7{padding-top:40px!important}}.govuk-\!-padding-right-7{padding-right:25px!important}@media (min-width: 40.0625em){.govuk-\!-padding-right-7{padding-right:40px!important}}.govuk-\!-padding-bottom-7{padding-bottom:25px!important}@media (min-width: 40.0625em){.govuk-\!-padding-bottom-7{padding-bottom:40px!important}}.govuk-\!-padding-left-7{padding-left:25px!important}@media (min-width: 40.0625em){.govuk-\!-padding-left-7{padding-left:40px!important}}.govuk-\!-padding-8{padding:30px!important}@media (min-width: 40.0625em){.govuk-\!-padding-8{padding:50px!important}}.govuk-\!-padding-top-8{padding-top:30px!important}@media (min-width: 40.0625em){.govuk-\!-padding-top-8{padding-top:50px!important}}.govuk-\!-padding-right-8{padding-right:30px!important}@media (min-width: 40.0625em){.govuk-\!-padding-right-8{padding-right:50px!important}}.govuk-\!-padding-bottom-8{padding-bottom:30px!important}@media (min-width: 40.0625em){.govuk-\!-padding-bottom-8{padding-bottom:50px!important}}.govuk-\!-padding-left-8{padding-left:30px!important}@media (min-width: 40.0625em){.govuk-\!-padding-left-8{padding-left:50px!important}}.govuk-\!-padding-9{padding:40px!important}@media (min-width: 40.0625em){.govuk-\!-padding-9{padding:60px!important}}.govuk-\!-padding-top-9{padding-top:40px!important}@media (min-width: 40.0625em){.govuk-\!-padding-top-9{padding-top:60px!important}}.govuk-\!-padding-right-9{padding-right:40px!important}@media (min-width: 40.0625em){.govuk-\!-padding-right-9{padding-right:60px!important}}.govuk-\!-padding-bottom-9{padding-bottom:40px!important}@media (min-width: 40.0625em){.govuk-\!-padding-bottom-9{padding-bottom:60px!important}}.govuk-\!-padding-left-9{padding-left:40px!important}@media (min-width: 40.0625em){.govuk-\!-padding-left-9{padding-left:60px!important}}.govuk-\!-static-margin-0{margin:0!important}.govuk-\!-static-margin-top-0{margin-top:0!important}.govuk-\!-static-margin-right-0{margin-right:0!important}.govuk-\!-static-margin-bottom-0{margin-bottom:0!important}.govuk-\!-static-margin-left-0{margin-left:0!important}.govuk-\!-static-margin-1{margin:5px!important}.govuk-\!-static-margin-top-1{margin-top:5px!important}.govuk-\!-static-margin-right-1{margin-right:5px!important}.govuk-\!-static-margin-bottom-1{margin-bottom:5px!important}.govuk-\!-static-margin-left-1{margin-left:5px!important}.govuk-\!-static-margin-2{margin:10px!important}.govuk-\!-static-margin-top-2{margin-top:10px!important}.govuk-\!-static-margin-right-2{margin-right:10px!important}.govuk-\!-static-margin-bottom-2{margin-bottom:10px!important}.govuk-\!-static-margin-left-2{margin-left:10px!important}.govuk-\!-static-margin-3{margin:15px!important}.govuk-\!-static-margin-top-3{margin-top:15px!important}.govuk-\!-static-margin-right-3{margin-right:15px!important}.govuk-\!-static-margin-bottom-3{margin-bottom:15px!important}.govuk-\!-static-margin-left-3{margin-left:15px!important}.govuk-\!-static-margin-4{margin:20px!important}.govuk-\!-static-margin-top-4{margin-top:20px!important}.govuk-\!-static-margin-right-4{margin-right:20px!important}.govuk-\!-static-margin-bottom-4{margin-bottom:20px!important}.govuk-\!-static-margin-left-4{margin-left:20px!important}.govuk-\!-static-margin-5{margin:25px!important}.govuk-\!-static-margin-top-5{margin-top:25px!important}.govuk-\!-static-margin-right-5{margin-right:25px!important}.govuk-\!-static-margin-bottom-5{margin-bottom:25px!important}.govuk-\!-static-margin-left-5{margin-left:25px!important}.govuk-\!-static-margin-6{margin:30px!important}.govuk-\!-static-margin-top-6{margin-top:30px!important}.govuk-\!-static-margin-right-6{margin-right:30px!important}.govuk-\!-static-margin-bottom-6{margin-bottom:30px!important}.govuk-\!-static-margin-left-6{margin-left:30px!important}.govuk-\!-static-margin-7{margin:40px!important}.govuk-\!-static-margin-top-7{margin-top:40px!important}.govuk-\!-static-margin-right-7{margin-right:40px!important}.govuk-\!-static-margin-bottom-7{margin-bottom:40px!important}.govuk-\!-static-margin-left-7{margin-left:40px!important}.govuk-\!-static-margin-8{margin:50px!important}.govuk-\!-static-margin-top-8{margin-top:50px!important}.govuk-\!-static-margin-right-8{margin-right:50px!important}.govuk-\!-static-margin-bottom-8{margin-bottom:50px!important}.govuk-\!-static-margin-left-8{margin-left:50px!important}.govuk-\!-static-margin-9{margin:60px!important}.govuk-\!-static-margin-top-9{margin-top:60px!important}.govuk-\!-static-margin-right-9{margin-right:60px!important}.govuk-\!-static-margin-bottom-9{margin-bottom:60px!important}.govuk-\!-static-margin-left-9{margin-left:60px!important}.govuk-\!-static-padding-0{padding:0!important}.govuk-\!-static-padding-top-0{padding-top:0!important}.govuk-\!-static-padding-right-0{padding-right:0!important}.govuk-\!-static-padding-bottom-0{padding-bottom:0!important}.govuk-\!-static-padding-left-0{padding-left:0!important}.govuk-\!-static-padding-1{padding:5px!important}.govuk-\!-static-padding-top-1{padding-top:5px!important}.govuk-\!-static-padding-right-1{padding-right:5px!important}.govuk-\!-static-padding-bottom-1{padding-bottom:5px!important}.govuk-\!-static-padding-left-1{padding-left:5px!important}.govuk-\!-static-padding-2{padding:10px!important}.govuk-\!-static-padding-top-2{padding-top:10px!important}.govuk-\!-static-padding-right-2{padding-right:10px!important}.govuk-\!-static-padding-bottom-2{padding-bottom:10px!important}.govuk-\!-static-padding-left-2{padding-left:10px!important}.govuk-\!-static-padding-3{padding:15px!important}.govuk-\!-static-padding-top-3{padding-top:15px!important}.govuk-\!-static-padding-right-3{padding-right:15px!important}.govuk-\!-static-padding-bottom-3{padding-bottom:15px!important}.govuk-\!-static-padding-left-3{padding-left:15px!important}.govuk-\!-static-padding-4{padding:20px!important}.govuk-\!-static-padding-top-4{padding-top:20px!important}.govuk-\!-static-padding-right-4{padding-right:20px!important}.govuk-\!-static-padding-bottom-4{padding-bottom:20px!important}.govuk-\!-static-padding-left-4{padding-left:20px!important}.govuk-\!-static-padding-5{padding:25px!important}.govuk-\!-static-padding-top-5{padding-top:25px!important}.govuk-\!-static-padding-right-5{padding-right:25px!important}.govuk-\!-static-padding-bottom-5{padding-bottom:25px!important}.govuk-\!-static-padding-left-5{padding-left:25px!important}.govuk-\!-static-padding-6{padding:30px!important}.govuk-\!-static-padding-top-6{padding-top:30px!important}.govuk-\!-static-padding-right-6{padding-right:30px!important}.govuk-\!-static-padding-bottom-6{padding-bottom:30px!important}.govuk-\!-static-padding-left-6{padding-left:30px!important}.govuk-\!-static-padding-7{padding:40px!important}.govuk-\!-static-padding-top-7{padding-top:40px!important}.govuk-\!-static-padding-right-7{padding-right:40px!important}.govuk-\!-static-padding-bottom-7{padding-bottom:40px!important}.govuk-\!-static-padding-left-7{padding-left:40px!important}.govuk-\!-static-padding-8{padding:50px!important}.govuk-\!-static-padding-top-8{padding-top:50px!important}.govuk-\!-static-padding-right-8{padding-right:50px!important}.govuk-\!-static-padding-bottom-8{padding-bottom:50px!important}.govuk-\!-static-padding-left-8{padding-left:50px!important}.govuk-\!-static-padding-9{padding:60px!important}.govuk-\!-static-padding-top-9{padding-top:60px!important}.govuk-\!-static-padding-right-9{padding-right:60px!important}.govuk-\!-static-padding-bottom-9{padding-bottom:60px!important}.govuk-\!-static-padding-left-9{padding-left:60px!important}.govuk-\!-text-align-left{text-align:left!important}.govuk-\!-text-align-centre{text-align:center!important}.govuk-\!-text-align-right{text-align:right!important}.govuk-\!-font-size-80{font-size:3.3125rem!important;line-height:1.0377358491!important}@media (min-width: 40.0625em){.govuk-\!-font-size-80{font-size:5rem!important;line-height:1!important}}@media print{.govuk-\!-font-size-80{font-size:53pt!important;line-height:1.1!important}}.govuk-\!-font-size-48{font-size:2rem!important;line-height:1.09375!important}@media (min-width: 40.0625em){.govuk-\!-font-size-48{font-size:3rem!important;line-height:1.0416666667!important}}@media print{.govuk-\!-font-size-48{font-size:32pt!important;line-height:1.15!important}}.govuk-\!-font-size-36{font-size:1.5rem!important;line-height:1.0416666667!important}@media (min-width: 40.0625em){.govuk-\!-font-size-36{font-size:2.25rem!important;line-height:1.1111111111!important}}@media print{.govuk-\!-font-size-36{font-size:24pt!important;line-height:1.05!important}}.govuk-\!-font-size-27{font-size:1.125rem!important;line-height:1.1111111111!important}@media (min-width: 40.0625em){.govuk-\!-font-size-27{font-size:1.6875rem!important;line-height:1.1111111111!important}}@media print{.govuk-\!-font-size-27{font-size:18pt!important;line-height:1.15!important}}.govuk-\!-font-size-24{font-size:1.125rem!important;line-height:1.1111111111!important}@media (min-width: 40.0625em){.govuk-\!-font-size-24{font-size:1.5rem!important;line-height:1.25!important}}@media print{.govuk-\!-font-size-24{font-size:18pt!important;line-height:1.15!important}}.govuk-\!-font-size-19{font-size:1rem!important;line-height:1.25!important}@media (min-width: 40.0625em){.govuk-\!-font-size-19{font-size:1.1875rem!important;line-height:1.3157894737!important}}@media print{.govuk-\!-font-size-19{font-size:14pt!important;line-height:1.15!important}}.govuk-\!-font-size-16{font-size:.875rem!important;line-height:1.1428571429!important}@media (min-width: 40.0625em){.govuk-\!-font-size-16{font-size:1rem!important;line-height:1.25!important}}@media print{.govuk-\!-font-size-16{font-size:14pt!important;line-height:1.2!important}}.govuk-\!-font-size-14{font-size:.75rem!important;line-height:1.25!important}@media (min-width: 40.0625em){.govuk-\!-font-size-14{font-size:.875rem!important;line-height:1.4285714286!important}}@media print{.govuk-\!-font-size-14{font-size:12pt!important;line-height:1.2!important}}.govuk-\!-font-weight-regular{font-weight:400!important}.govuk-\!-font-weight-bold{font-weight:700!important}.govuk-\!-width-full,.govuk-\!-width-three-quarters{width:100%!important}@media (min-width: 40.0625em){.govuk-\!-width-three-quarters{width:75%!important}}.govuk-\!-width-two-thirds{width:100%!important}@media (min-width: 40.0625em){.govuk-\!-width-two-thirds{width:66.66%!important}}.govuk-\!-width-one-half{width:100%!important}@media (min-width: 40.0625em){.govuk-\!-width-one-half{width:50%!important}}.govuk-\!-width-one-third{width:100%!important}@media (min-width: 40.0625em){.govuk-\!-width-one-third{width:33.33%!important}}.govuk-\!-width-one-quarter{width:100%!important}@media (min-width: 40.0625em){.govuk-\!-width-one-quarter{width:25%!important}}.app-task-list{list-style-type:none;padding-left:0;margin-top:0;margin-bottom:0}@media (min-width: 40.0625em){.app-task-list{min-width:550px}}.app-task-list__items{width:44em}.app-task-list__section{display:table;font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:700;font-size:18px;font-size:1.125rem;line-height:1.1111111111}@media print{.app-task-list__section{font-family:sans-serif}}@media (min-width: 40.0625em){.app-task-list__section{font-size:24px;font-size:1.5rem;line-height:1.25}}@media print{.app-task-list__section{font-size:18pt;line-height:1.15}}.app-task-list__section-number{display:table-cell}@media (min-width: 40.0625em){.app-task-list__section-number{min-width:30px;padding-right:0}}.app-task-list__items{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:16px;font-size:1rem;line-height:1.25;margin-bottom:40px;list-style:none;padding-left:0}@media print{.app-task-list__items{font-family:sans-serif}}@media (min-width: 40.0625em){.app-task-list__items{font-size:19px;font-size:1.1875rem;line-height:1.3157894737}}@media print{.app-task-list__items{font-size:14pt;line-height:1.15}}@media (min-width: 40.0625em){.app-task-list__items{margin-bottom:60px}}.app-task-list__item{border-bottom:1px solid #b1b4b6;margin-bottom:0!important;padding-top:10px;padding-bottom:10px}.app-task-list__item:after{content:"";display:block;clear:both}.app-task-list__item:first-child{border-top:1px solid #b1b4b6}.app-task-list__task-name{display:block}@media (min-width: 28.125em){.app-task-list__task-name{float:left}}.app-task-list__tag,.app-task-list__task-completed{margin-top:10px;margin-bottom:5px}@media (min-width: 28.125em){.app-task-list__tag,.app-task-list__task-completed{float:right;margin-top:0;margin-bottom:0}}#checkYourAnswers-page .spacer{content:" "!important;display:block!important}@media (min-width: 40.0625em){#checkYourAnswers-page .govuk-summary-list__key{width:100%}#checkYourAnswers-page .govuk-summary-list__actions{width:0}}#checkYourAnswers-page dl.govuk-summary-list.govuk-\!-margin-bottom-9{border-top:1px solid #b1b4b6}#checkYourAnswers-page h3.govuk-body-l{color:gray;margin-bottom:5px}#checkYourAnswers-page .govuk-heading-xl{font-size:2.5rem;margin-bottom:25px}.app-related-items{border-top:2px solid #347ca9;padding-top:10px}.app-related-items .govuk-list>li{margin-bottom:10px}.dfe-section-card{padding:16px;margin-bottom:20px;flex:1;background-color:#f3f2f1}.dfe-section-card__container{display:flex;width:100}@media (max-width: 40.0525em){.dfe-section-card__container{display:grid;width:100}}strong.app-task-list__task-name>p.govuk-error-message{margin-bottom:0}rich-text>p.govuk-body{margin-top:15px;margin-bottom:15px}@media (min-width: 40.0625em){.govuk-body,.govuk-body-m{margin-bottom:10px}h2,.dfe-heading-l,.govuk-heading-l{margin-top:45px}h3,.dfe-heading-s,.govuk-heading-s,.dfe-headin-m{padding-top:10px;margin-top:35px}rich-text>p.govuk-body{margin-top:20px;margin-bottom:20px}}.govuk-header{background-color:#003a69}.govuk-header__container{position:relative;margin-bottom:-10px;padding-top:25px;padding-bottom:15px;border-bottom:10px solid #347ca9}.govuk-header__product-name,.govuk-header__logotype-text{line-height:2.5rem!important;font-size:1.2rem}.app-header .govuk-header__logo{width:85%}.app-header .govuk-header__content{width:0}.govuk-header__logotype-crown-fallback-image{height:45px;width:45px}.govuk-header__logotype-text:after{content:"|"}.govuk-header__logotype{margin-right:0}.govuk-header__navigation-item--active a:link,.govuk-header__navigation-item--active a:hover,.govuk-header__navigation-item--active a:visited{color:#f3f2f1;text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:.1em}.edf-hero-banner{margin-top:-10px!important;margin-bottom:40px}@media (max-width: 40.0625em){.govuk-header__product-name{max-width:80%;line-height:1.2rem!important;font-size:1rem}.govuk-header__logotype-text{min-width:100%;line-height:2.2rem!important;font-size:1rem}.edf-hero-banner{margin-top:0!important;margin-bottom:20px}}.app-section-beta{padding:30px 0}.app-section-beta__blue{background-color:#347ca9}.body-header-font{color:#fff}button,input,select,textarea{font-family:inherit}html{background-color:#fff;overflow-y:scroll;font-family:BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",Sans-serif}body{background-color:#fff;color:#0b0c0c;font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;line-height:1.33333;margin:0;min-height:100%}table{margin-bottom:40px;border-spacing:0;vertical-align:top;width:100%}@media (min-width: 40.0625em){table{margin-bottom:48px}}@media print{table{page-break-inside:avoid}}thead th{border-bottom:2px solid #f3f2f1}th,td{font-size:16px;font-size:1;line-height:1.33333;padding-bottom:8px;padding-right:16px;padding-top:8px;border-bottom:1px solid #f3f2f1;text-align:left;vertical-align:top}@media (min-width: 40.0625em){th,td{font-size:19px;font-size:1.1875;line-height:1.33333}}@media print{th,td{font-size:14pt;line-height:1.15}}@media (min-width: 40.0625em){th,td{padding-bottom:16px}}@media (min-width: 40.0625em){th,td{padding-right:24px}}@media (min-width: 40.0625em){th,td{padding-top:16px}}th:last-child,td:last-child{padding-right:0}th{font-weight:700}caption{font-weight:700;font-size:18px;font-size:1.125;line-height:1.33333;text-align:left}@media (min-width: 40.0625em){caption{font-size:22px;font-size:1.375;line-height:1.33333}}@media print{caption{font-size:18pt;line-height:1.15}}.dfe-form-group{margin-bottom:16px}@media (min-width: 40.0625em){.dfe-form-group{margin-bottom:24px}}.dfe-form-group .dfe-form-group:last-of-type{margin-bottom:0}.dfe-form-group--wrapper{margin-bottom:24px}@media (min-width: 40.0625em){.dfe-form-group--wrapper{margin-bottom:32px}}.dfe-form-group--error{border-left:4px solid #d4351c;padding-left:16px}.dfe-form-group--error .dfe-form-group{border:0;padding:0}.dfe-grid-row{margin-left:-16px;margin-right:-16px}.dfe-grid-row:after{clear:both;content:"";display:block}.dfe-grid-column-one-quarter{box-sizing:border-box;padding:0 16px}@media (min-width: 48.0625em){.dfe-grid-column-one-quarter{float:left;width:25%}}.dfe-grid-column-one-third{box-sizing:border-box;padding:0 16px}@media (min-width: 48.0625em){.dfe-grid-column-one-third{float:left;width:33.3333%}}.dfe-grid-column-one-half{box-sizing:border-box;padding:0 16px}@media (min-width: 48.0625em){.dfe-grid-column-one-half{float:left;width:50%}}.dfe-grid-column-two-thirds{box-sizing:border-box;padding:0 16px}@media (min-width: 48.0625em){.dfe-grid-column-two-thirds{float:left;width:66.6666%}}.dfe-grid-column-three-quarters{box-sizing:border-box;padding:0 16px}@media (min-width: 48.0625em){.dfe-grid-column-three-quarters{float:left;width:75%}}.dfe-grid-column-full{box-sizing:border-box;padding:0 16px}@media (min-width: 48.0625em){.dfe-grid-column-full{float:left;width:100%}}.dfe-main-wrapper{padding-top:40px;padding-bottom:40px;display:block}@media (min-width: 40.0625em){.dfe-main-wrapper{padding-top:48px}}@media (min-width: 40.0625em){.dfe-main-wrapper{padding-bottom:48px}}.dfe-main-wrapper>*:first-child{margin-top:0}.dfe-main-wrapper>*:last-child{margin-bottom:0}.dfe-main-wrapper--l{padding-top:48px}@media (min-width: 40.0625em){.dfe-main-wrapper--l{padding-top:56px}}.dfe-main-wrapper--s{padding-bottom:24px;padding-top:24px}@media (min-width: 40.0625em){.dfe-main-wrapper--s{padding-bottom:32px}}@media (min-width: 40.0625em){.dfe-main-wrapper--s{padding-top:32px}}.dfe-width-container,div.govuk-width-container{margin:0 16px;max-width:1200px}@media (min-width: 48.0625em){.dfe-width-container,div.govuk-width-container{margin:0 32px}}@media (min-width: 1264px){.dfe-width-container,div.govuk-width-container{margin:0 auto}}.dfe-width-container-fluid{margin:0 16px;max-width:100%}@media (min-width: 48.0625em){.dfe-width-container-fluid{margin:0 32px}}.dfe-icon{height:34px;width:34px}.dfe-icon__search,.dfe-icon__chevron-left,.dfe-icon__chevron-right,.dfe-icon__close{fill:#003a69}.dfe-icon__cross{fill:#d4351c}.dfe-icon__tick{stroke:#00703c}.dfe-icon__arrow-right,.dfe-icon__arrow-left{fill:#003a69}.dfe-icon__arrow-right-circle{fill:#00703c}.dfe-icon__chevron-down{fill:#003a69;-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);-webkit-transform:rotate(180deg);transform:rotate(180deg)}.dfe-icon__chevron-down path{fill:#fff}.dfe-icon__chevron-up{fill:#003a69}.dfe-icon__chevron-up path{fill:#fff}.dfe-icon__emdash path{fill:#aeb7bd}.dfe-icon__plus,.dfe-icon__minus{fill:#003a69}.dfe-icon--size-25{height:42.5px;width:42.5px}.dfe-icon--size-50{height:51px;width:51px}.dfe-icon--size-75{height:59.5px;width:59.5px}.dfe-icon--size-100{height:68px;width:68px}ol,ul,.dfe-list{font-size:16px;font-size:1;line-height:1.33333;margin-bottom:16px;list-style-type:none;margin-top:0;padding-left:0}@media (min-width: 40.0625em){ol,ul,.dfe-list{font-size:19px;font-size:1.1875;line-height:1.33333}}@media print{ol,ul,.dfe-list{font-size:14pt;line-height:1.15}}@media (min-width: 40.0625em){ol,ul,.dfe-list{margin-bottom:24px}}ol>li,ul>li,.dfe-list>li{margin-bottom:8px}@media (min-width: 40.0625em){ol>li,ul>li,.dfe-list>li{margin-bottom:8px}}ol>li:last-child,ul>li:last-child,.dfe-list>li:last-child{margin-bottom:0}ul,.dfe-list--bullet{list-style-type:disc;padding-left:20px}ol,.dfe-list--number{list-style-type:decimal;padding-left:20px}.dfe-list--tick,.dfe-list--cross{list-style:none;margin-top:0;padding-left:40px;position:relative}.dfe-list--tick svg,.dfe-list--cross svg{left:-4px;margin-top:-5px;position:absolute}h1,.dfe-heading-xl,.govuk-heading-xl{font-size:32px;font-size:2;line-height:1.33333;display:block;font-weight:700;margin-top:0;margin-bottom:40px}@media (min-width: 40.0625em){h1,.dfe-heading-xl,.govuk-heading-xl{font-size:48px;font-size:3;line-height:1.33333}}@media print{h1,.dfe-heading-xl,.govuk-heading-xl{font-size:32pt;line-height:1.15}}@media (min-width: 40.0625em){h1,.dfe-heading-xl,.govuk-heading-xl{margin-bottom:48px}}h2,.dfe-heading-l,.govuk-heading-l{font-size:24px;font-size:1.5;line-height:1.33333;display:block;font-weight:700;margin-top:0;margin-bottom:16px}@media (min-width: 40.0625em){h2,.dfe-heading-l,.govuk-heading-l{font-size:32px;font-size:2;line-height:1.33333}}@media print{h2,.dfe-heading-l,.govuk-heading-l{font-size:24pt;line-height:1.05}}@media (min-width: 40.0625em){h2,.dfe-heading-l,.govuk-heading-l{margin-bottom:24px}}h3,.dfe-heading-m,.govuk-heading-m{font-size:20px;font-size:1.25;line-height:1.33333;display:block;font-weight:700;margin-top:0;margin-bottom:16px}@media (min-width: 40.0625em){h3,.dfe-heading-m,.govuk-heading-m{font-size:24px;font-size:1.5;line-height:1.33333}}@media print{h3,.dfe-heading-m,.govuk-heading-m{font-size:18pt;line-height:1.15}}@media (min-width: 40.0625em){h3,.dfe-heading-m,.govuk-heading-m{margin-bottom:24px}}h4,.dfe-heading-s,.govuk-heading-s{font-size:16px;font-size:1;line-height:1.33333;display:block;font-weight:700;margin-top:0;margin-bottom:16px}@media (min-width: 40.0625em){h4,.dfe-heading-s,.govuk-heading-s{font-size:19px;font-size:1.1875;line-height:1.33333}}@media print{h4,.dfe-heading-s,.govuk-heading-s{font-size:14pt;line-height:1.15}}@media (min-width: 40.0625em){h4,.dfe-heading-s,.govuk-heading-s{margin-bottom:24px}}h5,.dfe-heading-xs{font-size:16px;font-size:1;line-height:1.33333;display:block;font-weight:700;margin-top:0;margin-bottom:16px}@media (min-width: 40.0625em){h5,.dfe-heading-xs{font-size:19px;font-size:1.1875;line-height:1.33333}}@media print{h5,.dfe-heading-xs{font-size:14pt;line-height:1.15}}@media (min-width: 40.0625em){h5,.dfe-heading-xs{margin-bottom:24px}}h6,.dfe-heading-xxs{font-size:16px;font-size:1;line-height:1.33333;display:block;font-weight:700;margin-top:0;margin-bottom:16px}@media (min-width: 40.0625em){h6,.dfe-heading-xxs{font-size:19px;font-size:1.1875;line-height:1.33333}}@media print{h6,.dfe-heading-xxs{font-size:14pt;line-height:1.15}}@media (min-width: 40.0625em){h6,.dfe-heading-xxs{margin-bottom:24px}}.dfe-caption-xl{font-weight:400;font-size:24px;font-size:1.5;line-height:1.33333;color:#505a5f;display:block;margin-bottom:4px}@media (min-width: 40.0625em){.dfe-caption-xl{font-size:32px;font-size:2;line-height:1.33333}}@media print{.dfe-caption-xl{font-size:24pt;line-height:1.05}}.dfe-caption-l{font-weight:400;font-size:20px;font-size:1.25;line-height:1.33333;color:#505a5f;display:block;margin-bottom:4px}@media (min-width: 40.0625em){.dfe-caption-l{font-size:24px;font-size:1.5;line-height:1.33333}}@media print{.dfe-caption-l{font-size:18pt;line-height:1.15}}.dfe-caption-m{font-weight:400;font-size:16px;font-size:1;line-height:1.33333;color:#505a5f;display:block}@media (min-width: 40.0625em){.dfe-caption-m{font-size:19px;font-size:1.1875;line-height:1.33333}}@media print{.dfe-caption-m{font-size:14pt;line-height:1.15}}.dfe-caption--bottom{margin-bottom:0;margin-top:4px}.dfe-body-l{font-size:20px;font-size:1.25;line-height:1.33333;display:block;margin-top:0;margin-bottom:24px}@media (min-width: 40.0625em){.dfe-body-l{font-size:24px;font-size:1.5;line-height:1.33333}}@media print{.dfe-body-l{font-size:18pt;line-height:1.15}}@media (min-width: 40.0625em){.dfe-body-l{margin-bottom:32px}}address,p,.dfe-body-m{font-size:16px;font-size:1;line-height:1.33333;display:block;margin-top:0;margin-bottom:16px}@media (min-width: 40.0625em){address,p,.dfe-body-m{font-size:19px;font-size:1.1875;line-height:1.33333}}@media print{address,p,.dfe-body-m{font-size:14pt;line-height:1.15}}@media (min-width: 40.0625em){address,p,.dfe-body-m{margin-bottom:24px}}p,.dfe-body-m{color:inherit}.dfe-body-s{font-size:14px;font-size:.875;line-height:1.33333;display:block;margin-top:0;margin-bottom:16px}@media (min-width: 40.0625em){.dfe-body-s{font-size:16px;font-size:1;line-height:1.33333}}@media print{.dfe-body-s{font-size:14pt;line-height:1.2}}@media (min-width: 40.0625em){.dfe-body-s{margin-bottom:24px}}address{font-style:normal}.dfe-lede-text{font-weight:400;font-size:20px;font-size:1.25;line-height:1.33333;margin-bottom:40px}@media (min-width: 40.0625em){.dfe-lede-text{font-size:24px;font-size:1.5;line-height:1.33333}}@media print{.dfe-lede-text{font-size:18pt;line-height:1.15}}@media (min-width: 40.0625em){.dfe-lede-text{margin-bottom:48px}}.dfe-lede-text p,.dfe-lede-text ul{font-weight:400;font-size:20px;font-size:1.25;line-height:1.33333}@media (min-width: 40.0625em){.dfe-lede-text p,.dfe-lede-text ul{font-size:24px;font-size:1.5;line-height:1.33333}}@media print{.dfe-lede-text p,.dfe-lede-text ul{font-size:18pt;line-height:1.15}}.dfe-lede-text--small{font-weight:400;font-size:16px;font-size:1;line-height:1.33333;margin-bottom:24px}@media (min-width: 40.0625em){.dfe-lede-text--small{font-size:19px;font-size:1.1875;line-height:1.33333}}@media print{.dfe-lede-text--small{font-size:14pt;line-height:1.15}}@media (min-width: 40.0625em){.dfe-lede-text--small{margin-bottom:32px}}h1+.dfe-lede-text,h1+.dfe-lede-text--small{margin-top:-8px}.dfe-body-l+h2,.dfe-body-l+.dfe-heading-l,.dfe-body-l+.govuk-heading-l{padding-top:4px}@media (min-width: 40.0625em){.dfe-body-l+h2,.dfe-body-l+.dfe-heading-l,.dfe-body-l+.govuk-heading-l{padding-top:8px}}p+h2,.dfe-body-m+h2,address+h2,p+.dfe-heading-l,.dfe-body-m+.dfe-heading-l,address+.dfe-heading-l,p+.govuk-heading-l,.dfe-body-m+.govuk-heading-l,address+.govuk-heading-l,.dfe-body-s+h2,.dfe-body-s+.dfe-heading-l,.dfe-body-s+.govuk-heading-l,.dfe-list+h2,ul+h2,ol+h2,.dfe-list+.dfe-heading-l,ul+.dfe-heading-l,ol+.dfe-heading-l,.dfe-list+.govuk-heading-l,ul+.govuk-heading-l,ol+.govuk-heading-l{padding-top:16px}@media (min-width: 40.0625em){p+h2,.dfe-body-m+h2,address+h2,p+.dfe-heading-l,.dfe-body-m+.dfe-heading-l,address+.dfe-heading-l,p+.govuk-heading-l,.dfe-body-m+.govuk-heading-l,address+.govuk-heading-l,.dfe-body-s+h2,.dfe-body-s+.dfe-heading-l,.dfe-body-s+.govuk-heading-l,.dfe-list+h2,ul+h2,ol+h2,.dfe-list+.dfe-heading-l,ul+.dfe-heading-l,ol+.dfe-heading-l,.dfe-list+.govuk-heading-l,ul+.govuk-heading-l,ol+.govuk-heading-l{padding-top:24px}}p+h3,.dfe-body-m+h3,address+h3,p+.dfe-heading-m,.dfe-body-m+.dfe-heading-m,address+.dfe-heading-m,p+.govuk-heading-m,.dfe-body-m+.govuk-heading-m,address+.govuk-heading-m,.dfe-body-s+h3,.dfe-body-s+.dfe-heading-m,.dfe-body-s+.govuk-heading-m,.dfe-list+h3,ul+h3,ol+h3,.dfe-list+.dfe-heading-m,ul+.dfe-heading-m,ol+.dfe-heading-m,.dfe-list+.govuk-heading-m,ul+.govuk-heading-m,ol+.govuk-heading-m,p+h4,.dfe-body-m+h4,address+h4,p+.dfe-heading-s,.dfe-body-m+.dfe-heading-s,address+.dfe-heading-s,p+.govuk-heading-s,.dfe-body-m+.govuk-heading-s,address+.govuk-heading-s,.dfe-body-s+h4,.dfe-body-s+.dfe-heading-s,.dfe-body-s+.govuk-heading-s,.dfe-list+h4,ul+h4,ol+h4,.dfe-list+.dfe-heading-s,ul+.dfe-heading-s,ol+.dfe-heading-s,.dfe-list+.govuk-heading-s,ul+.govuk-heading-s,ol+.govuk-heading-s{padding-top:4px}@media (min-width: 40.0625em){p+h3,.dfe-body-m+h3,address+h3,p+.dfe-heading-m,.dfe-body-m+.dfe-heading-m,address+.dfe-heading-m,p+.govuk-heading-m,.dfe-body-m+.govuk-heading-m,address+.govuk-heading-m,.dfe-body-s+h3,.dfe-body-s+.dfe-heading-m,.dfe-body-s+.govuk-heading-m,.dfe-list+h3,ul+h3,ol+h3,.dfe-list+.dfe-heading-m,ul+.dfe-heading-m,ol+.dfe-heading-m,.dfe-list+.govuk-heading-m,ul+.govuk-heading-m,ol+.govuk-heading-m,p+h4,.dfe-body-m+h4,address+h4,p+.dfe-heading-s,.dfe-body-m+.dfe-heading-s,address+.dfe-heading-s,p+.govuk-heading-s,.dfe-body-m+.govuk-heading-s,address+.govuk-heading-s,.dfe-body-s+h4,.dfe-body-s+.dfe-heading-s,.dfe-body-s+.govuk-heading-s,.dfe-list+h4,ul+h4,ol+h4,.dfe-list+.dfe-heading-s,ul+.dfe-heading-s,ol+.dfe-heading-s,.dfe-list+.govuk-heading-s,ul+.govuk-heading-s,ol+.govuk-heading-s{padding-top:8px}}.dfe-lede-text+h2,.dfe-lede-text+.dfe-heading-l,.dfe-lede-text+.govuk-heading-l{padding-top:0}strong,b{font-weight:700}.dfe-u-font-size-64{font-size:48px!important;font-size:3!important;line-height:1.33333!important}@media (min-width: 40.0625em){.dfe-u-font-size-64{font-size:64px!important;font-size:4!important;line-height:1.33333!important}}@media print{.dfe-u-font-size-64{font-size:53pt!important;line-height:1.1!important}}.dfe-u-font-size-48{font-size:32px!important;font-size:2!important;line-height:1.33333!important}@media (min-width: 40.0625em){.dfe-u-font-size-48{font-size:48px!important;font-size:3!important;line-height:1.33333!important}}@media print{.dfe-u-font-size-48{font-size:32pt!important;line-height:1.15!important}}.dfe-u-font-size-32{font-size:24px!important;font-size:1.5!important;line-height:1.33333!important}@media (min-width: 40.0625em){.dfe-u-font-size-32{font-size:32px!important;font-size:2!important;line-height:1.33333!important}}@media print{.dfe-u-font-size-32{font-size:24pt!important;line-height:1.05!important}}.dfe-u-font-size-24{font-size:20px!important;font-size:1.25!important;line-height:1.33333!important}@media (min-width: 40.0625em){.dfe-u-font-size-24{font-size:24px!important;font-size:1.5!important;line-height:1.33333!important}}@media print{.dfe-u-font-size-24{font-size:18pt!important;line-height:1.15!important}}.dfe-u-font-size-22{font-size:18px!important;font-size:1.125!important;line-height:1.33333!important}@media (min-width: 40.0625em){.dfe-u-font-size-22{font-size:22px!important;font-size:1.375!important;line-height:1.33333!important}}@media print{.dfe-u-font-size-22{font-size:18pt!important;line-height:1.15!important}}.dfe-u-font-size-19{font-size:16px!important;font-size:1!important;line-height:1.33333!important}@media (min-width: 40.0625em){.dfe-u-font-size-19{font-size:19px!important;font-size:1.1875!important;line-height:1.33333!important}}@media print{.dfe-u-font-size-19{font-size:14pt!important;line-height:1.15!important}}.dfe-u-font-size-16{font-size:14px!important;font-size:.875!important;line-height:1.33333!important}@media (min-width: 40.0625em){.dfe-u-font-size-16{font-size:16px!important;font-size:1!important;line-height:1.33333!important}}@media print{.dfe-u-font-size-16{font-size:14pt!important;line-height:1.2!important}}.dfe-u-font-size-14{font-size:12px!important;font-size:.75!important;line-height:1.33333!important}@media (min-width: 40.0625em){.dfe-u-font-size-14{font-size:14px!important;font-size:.875!important;line-height:1.33333!important}}@media print{.dfe-u-font-size-14{font-size:12pt!important;line-height:1.2!important}}.dfe-u-font-weight-normal{font-weight:400!important}.dfe-u-font-weight-bold{font-weight:700!important}.dfe-u-secondary-text-color{color:#505a5f!important}p,.govuk-body{max-width:44em}.dfe-header{background-color:#003a69;border-bottom:10px solid #347ca9}.dfe-header:after{clear:both;content:"";display:block}.dfe-header__container{padding:20px 0}.dfe-header__container:after{clear:both;content:"";display:block}@media (max-width: 40.0525em){.dfe-header__container{margin:0;padding:16px}}.dfe-header__logo{float:left}@media (max-width: 40.0525em){.dfe-header__logo{position:relative;z-index:1}}.dfe-header__logo .dfe-logo__background{fill:#fff}@media print{.dfe-header__logo .dfe-logo__background{fill:#003a69}}.dfe-header__logo .dfe-logo__text{fill:#003a69}@media print{.dfe-header__logo .dfe-logo__text{fill:#fff}}@media (min-width: 40.0625em){.dfe-header__logo{padding-left:0}}.dfe-header__logo .dfe-logo{height:90px;width:153px;border:0}@media (max-width: 48.0525em){.dfe-header__logo{max-width:60%}}@media (max-width: 450px){.dfe-header__logo{max-width:50%}}.dfe-header__link{height:90px;width:153px;display:block}.dfe-header__link .dfe-logo-hover{display:none}.dfe-header__link .dfe-logo{width:136px!important;height:80px!important}.dfe-header__link:focus .dfe-logo-hover{display:none}.dfe-header__link:focus .dfe-logo{display:none}.dfe-header__link:focus .dfe-logo+.dfe-logo-hover{display:inline-block;width:136px!important;height:80px!important}.dfe-header__link:focus{box-shadow:none}.dfe-header__link:focus .dfe-logo{box-shadow:0 0 0 4px #fd0,0 4px 0 4px #0b0c0c}@media print{.dfe-header__link:after{content:""}}.dfe-header__link:hover,.dfe-header__link:active,.dfe-header__link:focus{background-color:transparent}.dfe-header__content{position:relative}.dfe-header__content:after{clear:both;content:"";display:block}@media print{.dfe-header__content{display:none}}.dfe-header__content.js-show{border-bottom:4px solid #f0f4f5}@media (min-width: 40.0625em){.dfe-header__content{float:right}.dfe-header__content.js-show{border-bottom:0}}.dfe-header__action-links{display:flex;gap:20px;justify-content:flex-end;margin-bottom:10px}.dfe-header__action-links li{list-style:none;color:#fff;font-size:16px}.dfe-header__search{position:relative;text-align:right}.dfe-header__search:after{clear:both;content:"";display:block}@media (min-width: 40.0625em){.dfe-header__search{float:left;margin-left:8px}}.dfe-header__search-toggle{background-color:transparent;border:1px solid #ffffff;border-radius:4px;color:#fff;cursor:pointer;min-height:40px;padding:4px 8px 0;position:absolute;right:0;top:0}.dfe-header__search-toggle::-moz-focus-inner{border:0}.dfe-header__search-toggle:hover{background-color:#002644;border-color:#f0f4f5;box-shadow:none}.dfe-header__search-toggle:focus{border:1px solid #ffdd00!important}.dfe-header__search-toggle:active,.dfe-header__search-toggle.is-active{background-color:#001d35;border-color:#f0f4f5;color:#f0f4f5}.dfe-header__search-toggle .dfe-icon__search{fill:#fff;height:21px;width:21px}.dfe-header__search-toggle:focus{background-color:#fd0;border:0;box-shadow:0 4px #0b0c0c;color:#0b0c0c;outline:4px solid transparent;outline-offset:4px;box-shadow:0 0 0 2px #fd0,0 4px 0 2px #0b0c0c}.dfe-header__search-toggle:focus .dfe-icon{fill:#0b0c0c}@media (min-width: 40.0625em){.dfe-header__search-toggle{display:none}}.dfe-header__search-form{height:100%;overflow:visible}@media (max-width: 40.0525em){.dfe-header__search-form{background-color:#fff;display:flex;padding:16px;width:100%}}@media (max-width: 40.0525em){.dfe-header__search-wrap{display:none}.dfe-header__search-wrap.js-show{clear:both;display:flex;margin-bottom:-20px;margin-left:-16px;margin-right:-16px;padding-top:16px;text-align:left}}@media (min-width: 40.0625em){.dfe-header__search-wrap{display:block;line-height:0}}.dfe-search__input{-webkit-appearance:listbox;border-radius:4px 0 0 4px;padding:0 16px}.dfe-search__input:focus{border:4px solid #0b0c0c;box-shadow:0 0 0 4px #fd0;outline:4px solid transparent;outline-offset:4px;padding:0 9px}.dfe-search__input::placeholder{color:#505a5f;font-size:16px}.dfe-search__input:-ms-input-placeholder{color:#505a5f;font-size:16px}.dfe-search__input::-webkit-input-placeholder{color:#505a5f;font-size:16px}@media (max-width: 40.0525em){.dfe-search__input{border-bottom:1px solid #aeb7bd;border-left:1px solid #aeb7bd;border-right:0;border-top:1px solid #aeb7bd;flex-grow:2;-ms-flex-positive:2;font-size:inherit;height:52px;margin:0;outline:none;width:100%;z-index:1}}@media (min-width: 40.0625em){.dfe-search__input{border:1px solid #ffffff;font-size:16px;height:40px;width:200px}}@media (min-width: 48.0625em){.dfe-search__input{width:235px}}.dfe-search__submit{border:0;border-radius:0 4px 4px 0;float:right;font-size:inherit;line-height:inherit;outline:none;padding:0}.dfe-search__submit::-moz-focus-inner{border:0}.dfe-search__submit:hover{cursor:pointer}@media (max-width: 40.0525em){.dfe-search__submit{background-color:#003a69;height:52px;margin:0;padding:8px 8px 0}.dfe-search__submit .dfe-icon__search{fill:#fff;height:38px;width:38px}.dfe-search__submit:hover{background-color:#002644}.dfe-search__submit:focus{background-color:#fd0;box-shadow:0 -4px #fd0,0 4px #0b0c0c;outline:4px solid transparent;outline-offset:4px}.dfe-search__submit:focus:hover{background-color:#fd0}.dfe-search__submit:focus:hover .dfe-icon{fill:#0b0c0c}.dfe-search__submit:focus .dfe-icon{fill:#0b0c0c}}@media (min-width: 40.0625em){.dfe-search__submit{background-color:#f0f4f5;display:block;height:40px;width:44px}.dfe-search__submit .dfe-icon__search{height:27px;width:27px}.dfe-search__submit:hover{background-color:#002644;border:1px solid #ffffff}.dfe-search__submit:hover .dfe-icon__search{fill:#fff}.dfe-search__submit:focus{background-color:#fd0;border:0;box-shadow:0 4px #0b0c0c;color:#0b0c0c;outline:4px solid transparent;outline-offset:4px;box-shadow:0 -2px #fd0,0 4px #0b0c0c}.dfe-search__submit:focus .dfe-icon{fill:#0b0c0c}.dfe-search__submit:active{background-color:#001d35;border:0}.dfe-search__submit:active .dfe-icon__search{fill:#fff}}@media (max-width: 40.0525em){.dfe-search__close{background-color:transparent;border:0;cursor:pointer;height:40px;padding:0;width:40px;margin-left:8px;margin-right:-8px;margin-top:8px}.dfe-search__close .dfe-icon__close{fill:#003a69;height:40px;width:40px}.dfe-search__close::-moz-focus-inner{border:0}.dfe-search__close:hover .dfe-icon__close{fill:#40484c}.dfe-search__close:focus{background-color:#fd0;box-shadow:0 -2px #fd0,0 4px #0b0c0c;color:#0b0c0c;outline:4px solid transparent;text-decoration:none}.dfe-search__close:focus .dfe-icon__close{fill:#0b0c0c}}@media (min-width: 40.0625em){.dfe-search__close{display:none}}.dfe-search__input--withdropdown{border-bottom-left-radius:0}.dfe-search__submit--withdropdown{border-bottom-right-radius:0}.dfe-header__menu{float:right}@media (min-width: 40.0625em){.dfe-header__menu{float:left}}.dfe-header__menu-toggle{background-color:transparent;border:1px solid #ffffff;border-radius:4px;color:#fff;cursor:pointer;display:block;font-size:16px;font-weight:400;line-height:24px;margin-right:0;padding:7px 16px;position:relative;text-decoration:none;z-index:1}.dfe-header__menu-toggle::-moz-focus-inner{border:0}.dfe-header__menu-toggle:hover{background-color:#002644;border-color:#f0f4f5;box-shadow:none}.dfe-header__menu-toggle:focus{border:1px solid #ffdd00!important}.dfe-header__menu-toggle:active,.dfe-header__menu-toggle.is-active{background-color:#001d35;border-color:#f0f4f5;color:#f0f4f5}@media (max-width: 40.0525em){.dfe-header__menu-toggle{right:48px}}@media (min-width: 40.0625em) and (max-width: 61.865em){.dfe-header__menu-toggle{margin-top:0}}@media (min-width: 61.875em){.dfe-header__menu-toggle{display:none}}.dfe-header__menu-toggle:focus{background-color:#fd0;border:0;box-shadow:0 4px #0b0c0c;color:#0b0c0c;outline:4px solid transparent;outline-offset:4px;box-shadow:0 0 0 2px #fd0,0 4px 0 2px #0b0c0c}.dfe-header__menu-toggle:focus .dfe-icon{fill:#0b0c0c}@media (max-width: 40.0525em){.dfe-header__menu--only .dfe-header__menu-toggle{position:relative;right:auto;top:auto}}.dfe-header__navigation{background-color:#fff;clear:both;display:none;overflow:hidden}@media print{.dfe-header__navigation{display:none}}.dfe-header__navigation.js-show{display:block}@media (max-width: 61.865em){.dfe-header__navigation.js-show{border-bottom:4px solid #f0f4f5;border-top:4px solid #f0f4f5}.dfe-header__navigation.js-show .dfe-width-container,.dfe-header__navigation.js-show div.govuk-width-container{margin:0 16px}}@media (max-width: 48.0525em){.dfe-header__navigation.js-show .dfe-width-container,.dfe-header__navigation.js-show div.govuk-width-container{margin:0}}@media (min-width: 61.875em){.dfe-header__navigation{background-color:#003a69;display:block;margin:0 auto;max-width:1264px}}.dfe-header__navigation-title{font-weight:700;margin-bottom:0;padding:16px;position:relative}@media (min-width: 61.875em){.dfe-header__navigation-title{display:none}}.dfe-header__navigation-close{background-color:transparent;border:0;cursor:pointer;height:40px;padding:0;width:40px;overflow:hidden;position:absolute;right:8px;top:8px;white-space:nowrap}.dfe-header__navigation-close .dfe-icon__close{fill:#003a69;height:40px;width:40px}.dfe-header__navigation-close::-moz-focus-inner{border:0}.dfe-header__navigation-close:hover .dfe-icon__close{fill:#40484c}.dfe-header__navigation-close:focus{background-color:#fd0;box-shadow:0 -2px #fd0,0 4px #0b0c0c;color:#0b0c0c;outline:4px solid transparent;text-decoration:none}.dfe-header__navigation-close:focus .dfe-icon__close{fill:#0b0c0c}.dfe-header__navigation-list{list-style:none;margin:0;padding-left:0}@media (min-width: 61.875em){.dfe-header__navigation-list{border-top:1px solid rgba(255,255,255,.2);display:flex;justify-content:flex-start;padding:0;width:100%}}.dfe-header__navigation-item{border-top:1px solid #f0f4f5;margin-bottom:0;position:relative}.dfe-header__navigation-item.dfe-header__navigation-item--current{box-shadow:inset 0 52px #347ca9!important}.dfe-header__navigation-item.dfe-header__navigation-item--current a{font-weight:700;color:#fff}@media (min-width: 61.875em){.dfe-header__navigation-item{border-top:0;margin:0;text-align:center}.dfe-header__navigation-item a{color:#fff}.dfe-header__navigation-item .dfe-icon__chevron-right{display:none}}.dfe-header__navigation-link{font-weight:400;font-size:14px;font-size:.875;line-height:1.33333;border-bottom:4px solid transparent;border-top:4px solid transparent;color:#003a69;display:block;padding:12px 15px;text-decoration:none}@media (min-width: 40.0625em){.dfe-header__navigation-link{font-size:16px;font-size:1;line-height:1.33333}}@media print{.dfe-header__navigation-link{font-size:14pt;line-height:1.2}}@media (min-width: 61.875em){.dfe-header__navigation-link{color:#fff;line-height:normal}}.dfe-header__navigation-link .dfe-icon__chevron-right{fill:#aeb7bd;position:absolute;right:4px;top:11px}.dfe-header__navigation-link:visited{color:#003a69}@media (min-width: 61.875em){.dfe-header__navigation-link:visited{color:#fff}}.dfe-header__navigation-link:hover{box-shadow:none;color:#003a69;text-decoration:underline}@media (min-width: 61.875em){.dfe-header__navigation-link:hover{color:#fff}}.dfe-header__navigation-link:hover .dfe-icon__chevron-right{fill:#003a69}.dfe-header__navigation-link:active,.dfe-header__navigation-link:focus{background-color:#fd0;border-bottom:4px solid #0b0c0c;box-shadow:none;color:#0b0c0c;outline:4px solid transparent;outline-offset:4px;text-decoration:none}.dfe-header__navigation-link:active:hover,.dfe-header__navigation-link:focus:hover{background-color:#fd0;color:#0b0c0c}.dfe-header__navigation-link:active:hover .dfe-icon__chevron-right,.dfe-header__navigation-link:focus:hover .dfe-icon__chevron-right{fill:#0b0c0c}.dfe-header__navigation-link:active:visited,.dfe-header__navigation-link:focus:visited{background-color:#fd0;color:#0b0c0c}@media (min-width: 61.875em){.dfe-header__navigation-item--for-mobile{display:none}}@media (min-width: 61.875em){.dfe-header__navigation-list--small{justify-content:flex-start}}.dfe-header__transactional-service-name{float:left;padding-left:16px;padding-top:3px}@media (max-width: 61.865em){.dfe-header__transactional-service-name{padding-left:0;padding-top:8px;width:100%}}.dfe-header__transactional-service-name--link{color:#fff;font-weight:400;font-size:16px;font-size:1;line-height:1.33333;text-decoration:none}.dfe-header__transactional-service-name--link:visited{color:#fff}.dfe-header__transactional-service-name--link:hover{color:#fff;text-decoration:none}.dfe-header__transactional-service-name--link:focus{color:#0b0c0c;outline:4px solid transparent;outline-offset:4px;text-decoration:none}.dfe-header__transactional-service-name--link:active{color:#001d35}@media (min-width: 40.0625em){.dfe-header__transactional-service-name--link{font-size:19px;font-size:1.1875;line-height:1.33333}}@media print{.dfe-header__transactional-service-name--link{font-size:14pt;line-height:1.15}}.dfe-header__transactional-service-name--link:hover{text-decoration:underline}.dfe-header--transactional .dfe-header__link{height:60px;width:100px;display:block}.dfe-header--transactional .dfe-logo{height:60px;width:100px}.dfe-header--transactional .dfe-header__transactional-service-name{float:left}.dfe-header__link--service{height:auto;margin-top:-4px;text-decoration:none;width:auto}@media (min-width: 61.875em){.dfe-header__link--service{align-items:center;display:flex;-ms-flex-align:center;margin-bottom:0;width:auto}.dfe-header__link--service .dfe-header__service-name{margin-top:61px;font-weight:400;font-size:18px;font-size:1.125;line-height:1.33333;display:block;font-weight:500;letter-spacing:-.2px;line-height:23px;margin-left:12px}}@media (min-width: 61.875em) and (min-width: 40.0625em){.dfe-header__link--service .dfe-header__service-name{font-size:22px;font-size:1.375;line-height:1.33333}}@media print and (min-width: 61.875em){.dfe-header__link--service .dfe-header__service-name{font-size:18pt;line-height:1.15}}.dfe-header__link--service:hover{background:none}.dfe-header__link--service:hover .dfe-header__service-name{text-decoration:underline}.dfe-header__link--service:focus{background:#ffdd00;box-shadow:0 0 0 4px #fd0,0 4px 0 4px #0b0c0c}.dfe-header__link--service:focus .dfe-header__service-name{color:#0b0c0c;text-decoration:none}.dfe-header__link--service:focus .dfe-logo{box-shadow:none}.dfe-header__service-name{font-weight:400;font-size:18px;font-size:1.125;line-height:1.33333;color:#fff;display:block;padding-left:0;padding-right:0}@media (min-width: 40.0625em){.dfe-header__service-name{font-size:22px;font-size:1.375;line-height:1.33333}}@media print{.dfe-header__service-name{font-size:18pt;line-height:1.15}}@media (min-width: 61.875em){.dfe-header__service-name{padding-left:16px}}@media (max-width: 61.865em){.dfe-header__service-name{max-width:220px}}.dfe-header__logo--only{max-width:100%}@media (min-width: 40.0625em){.dfe-header__logo--only .dfe-header__link--service{align-items:center;display:flex;-ms-flex-align:center;margin-bottom:0;width:auto}.dfe-header__logo--only .dfe-header__service-name{padding-left:16px}}.dfeuk-header__username{padding-bottom:20px;margin:0;text-align:right;color:#fff}.dfeuk-header__username a{color:#fff;text-decoration:none}.dfeuk-header__username a:hover{text-decoration:underline}*{font-family:BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif!important}.logo{display:block;max-height:32px;max-width:100%}.govuk-table{margin-top:30px;margin-bottom:30px}a.govuk-home-link{position:relative;display:inline-block;margin-top:15px;margin-bottom:15px}li p.govuk-body{margin-top:0;margin-bottom:0}strong.govuk-tag{text-transform:lowercase}strong.govuk-tag:first-letter{text-transform:uppercase} /*! Copyright (c) 2011 by Margaret Calvert & Henrik Kubel. All rights reserved. The font has been customised for exclusive use on gov.uk. This cut is not commercially available. */ /*# sourceMappingURL=application.css.map */ diff --git a/src/Dfe.PlanTech.Web/wwwroot/css/application.css.map b/src/Dfe.PlanTech.Web/wwwroot/css/application.css.map index 0dccb22bd..c13f31c12 100644 --- a/src/Dfe.PlanTech.Web/wwwroot/css/application.css.map +++ b/src/Dfe.PlanTech.Web/wwwroot/css/application.css.map @@ -1,7 +1,7 @@ { "version": 3, - "sources": ["../../node_modules/govuk-frontend/govuk/core/_govuk-frontend-version.scss", "../../node_modules/govuk-frontend/govuk/core/_links.scss", "../../node_modules/govuk-frontend/govuk/helpers/_typography.scss", "../../node_modules/govuk-frontend/govuk/settings/_typography-font.scss", "../../node_modules/govuk-frontend/govuk/helpers/_links.scss", "../../node_modules/govuk-frontend/govuk/helpers/_font-faces.scss", "../../node_modules/govuk-frontend/govuk/vendor/_sass-mq.scss", "../../node_modules/govuk-frontend/govuk/helpers/_focused.scss", "../../node_modules/govuk-frontend/govuk/settings/_colours-applied.scss", "../../node_modules/govuk-frontend/govuk/core/_lists.scss", "../../node_modules/govuk-frontend/govuk/helpers/_spacing.scss", "../../node_modules/govuk-frontend/govuk/core/_typography.scss", "../../node_modules/govuk-frontend/govuk/core/_section-break.scss", "../../node_modules/govuk-frontend/govuk/objects/_button-group.scss", "../../node_modules/govuk-frontend/govuk/objects/_form-group.scss", "../../node_modules/govuk-frontend/govuk/helpers/_clearfix.scss", "../../node_modules/govuk-frontend/govuk/objects/_grid.scss", "../../node_modules/govuk-frontend/govuk/helpers/_grid.scss", "../../node_modules/govuk-frontend/govuk/objects/_main-wrapper.scss", "../../node_modules/govuk-frontend/govuk/objects/_template.scss", "../../node_modules/govuk-frontend/govuk/objects/_width-container.scss", "../../node_modules/govuk-frontend/govuk/settings/_measurements.scss", "../../node_modules/govuk-frontend/govuk/components/accordion/_index.scss", "../../node_modules/govuk-frontend/govuk/components/back-link/_index.scss", "../../node_modules/govuk-frontend/govuk/components/breadcrumbs/_index.scss", "../../node_modules/govuk-frontend/govuk/components/button/_index.scss", "../../node_modules/govuk-frontend/govuk/components/error-message/_index.scss", "../../node_modules/govuk-frontend/govuk/components/fieldset/_index.scss", "../../node_modules/govuk-frontend/govuk/components/hint/_index.scss", "../../node_modules/govuk-frontend/govuk/components/label/_index.scss", "../../node_modules/govuk-frontend/govuk/components/checkboxes/_index.scss", "../../node_modules/govuk-frontend/govuk/components/textarea/_index.scss", "../../node_modules/govuk-frontend/govuk/components/character-count/_index.scss", "../../node_modules/govuk-frontend/govuk/components/cookie-banner/_index.scss", "../../node_modules/govuk-frontend/govuk/components/input/_index.scss", "../../node_modules/govuk-frontend/govuk/components/date-input/_index.scss", "../../node_modules/govuk-frontend/govuk/components/details/_index.scss", "../../node_modules/govuk-frontend/govuk/helpers/_shape-arrow.scss", "../../node_modules/govuk-frontend/govuk/components/error-summary/_index.scss", "../../node_modules/govuk-frontend/govuk/components/exit-this-page/_index.scss", "../../node_modules/govuk-frontend/govuk/components/file-upload/_index.scss", "../../node_modules/govuk-frontend/govuk/components/footer/_index.scss", "../../node_modules/govuk-frontend/govuk/helpers/_device-pixels.scss", "../../node_modules/govuk-frontend/govuk/components/header/_index.scss", "../../node_modules/govuk-frontend/govuk/settings/_links.scss", "../../node_modules/govuk-frontend/govuk/components/inset-text/_index.scss", "../../node_modules/govuk-frontend/govuk/components/notification-banner/_index.scss", "../../node_modules/govuk-frontend/govuk/components/pagination/_index.scss", "../../node_modules/govuk-frontend/govuk/components/panel/_index.scss", "../../node_modules/govuk-frontend/govuk/components/tag/_index.scss", "../../node_modules/govuk-frontend/govuk/components/phase-banner/_index.scss", "../../node_modules/govuk-frontend/govuk/components/tabs/_index.scss", "../../node_modules/govuk-frontend/govuk/components/radios/_index.scss", "../../node_modules/govuk-frontend/govuk/components/select/_index.scss", "../../node_modules/govuk-frontend/govuk/components/skip-link/_index.scss", "../../node_modules/govuk-frontend/govuk/helpers/_visually-hidden.scss", "../../node_modules/govuk-frontend/govuk/components/summary-list/_index.scss", "../../node_modules/govuk-frontend/govuk/components/table/_index.scss", "../../node_modules/govuk-frontend/govuk/components/warning-text/_index.scss", "../../node_modules/govuk-frontend/govuk/utilities/_visually-hidden.scss", "../../node_modules/govuk-frontend/govuk/overrides/_display.scss", "../../node_modules/govuk-frontend/govuk/overrides/_spacing.scss", "../../node_modules/govuk-frontend/govuk/overrides/_text-align.scss", "../../node_modules/govuk-frontend/govuk/overrides/_typography.scss", "../../node_modules/govuk-frontend/govuk/overrides/_width.scss", "../../node_modules/dfe-frontend-alpha/packages/core/settings/_colours.scss", "../../node_modules/dfe-frontend-alpha/packages/core/tools/_shape-arrow.scss", "../../node_modules/dfe-frontend-alpha/packages/core/vendor/sass-mq.scss", "../../node_modules/dfe-frontend-alpha/packages/core/elements/_forms.scss", "../../node_modules/dfe-frontend-alpha/packages/core/elements/_page.scss", "../../node_modules/dfe-frontend-alpha/packages/core/settings/_globals.scss", "../../node_modules/dfe-frontend-alpha/packages/core/elements/_table.scss", "../../node_modules/dfe-frontend-alpha/packages/core/tools/_spacing.scss", "../../node_modules/dfe-frontend-alpha/packages/core/tools/_typography.scss", "../../node_modules/dfe-frontend-alpha/packages/core/objects/_form-group.scss", "../../node_modules/dfe-frontend-alpha/packages/core/objects/_grid.scss", "../../node_modules/dfe-frontend-alpha/packages/core/tools/_grid.scss", "../../node_modules/dfe-frontend-alpha/packages/core/tools/_mixins.scss", "../../node_modules/dfe-frontend-alpha/packages/core/objects/_main-wrapper.scss", "../../node_modules/dfe-frontend-alpha/packages/core/objects/_width-container.scss", "../../node_modules/dfe-frontend-alpha/packages/core/styles/_icons.scss", "../../node_modules/dfe-frontend-alpha/packages/core/styles/_lists.scss", "../../node_modules/dfe-frontend-alpha/packages/core/styles/_typography.scss", "../../node_modules/dfe-frontend-alpha/packages/core/utilities/_typography.scss", "../../node_modules/dfe-frontend-alpha/packages/core/all.scss", "../../node_modules/dfe-frontend-alpha/packages/components/header/_header.scss", "../../node_modules/dfe-frontend-alpha/packages/core/tools/_focused.scss", "../../node_modules/dfe-frontend-alpha/packages/core/tools/_links.scss", "../../styles/scss/overrides.scss", "../../styles/scss/app-task-list.scss"], - "sourcesContent": [":root {\n // This variable is automatically overwritten during builds and releases.\n // It doesn't need to be updated manually.\n --govuk-frontend-version: \"4.7.0\";\n}\n", "@include govuk-exports(\"govuk/core/links\") {\n\n %govuk-link {\n @include govuk-link-common;\n @include govuk-link-style-default;\n @include govuk-link-print-friendly;\n }\n\n .govuk-link {\n @extend %govuk-link;\n }\n\n // Variant classes should always be used in conjunction with the .govuk-link\n // class, so we do not need the common link styles as they will be inherited.\n\n .govuk-link--muted {\n @include govuk-link-style-muted;\n }\n\n .govuk-link--text-colour {\n @include govuk-link-style-text;\n }\n\n .govuk-link--inverse {\n @include govuk-link-style-inverse;\n }\n\n .govuk-link--no-underline {\n @include govuk-link-style-no-underline;\n }\n\n .govuk-link--no-visited-state {\n @include govuk-link-style-no-visited-state;\n }\n}\n", "////\n/// @group helpers/typography\n////\n\n@import \"../tools/px-to-rem\";\n\n/// 'Common typography' helper\n///\n/// Sets the font family and associated properties, such as font smoothing. Also\n/// overrides the font for print.\n///\n/// @param {List} $font-family [$govuk-font-family] Font family to use\n/// @access public\n\n@mixin govuk-typography-common($font-family: $govuk-font-family) {\n font-family: $font-family;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n\n // If the user is using the default GDS Transport font we need to include\n // the font-face declarations.\n //\n // We do not need to include the GDS Transport font-face declarations if\n // alphagov/govuk_template is being used since nta will already be included by\n // default.\n @if $govuk-include-default-font-face {\n @include _govuk-font-face-gds-transport;\n }\n\n @include govuk-media-query($media-type: print) {\n font-family: $govuk-font-family-print;\n }\n}\n\n/// Text colour helper\n///\n/// Sets the text colour, including a suitable override for print.\n///\n/// @access public\n\n@mixin govuk-text-colour {\n color: $govuk-text-colour;\n\n @include govuk-media-query($media-type: print) {\n color: $govuk-print-text-colour;\n }\n}\n\n/// Regular font weight helper\n///\n/// @param {Boolean} $important [false] - Whether to mark declarations as\n/// `!important`. Generally Used to create override classes.\n/// @access public\n\n@mixin govuk-typography-weight-regular($important: false) {\n font-weight: $govuk-font-weight-regular if($important, !important, null);\n}\n\n/// Bold font weight helper\n///\n/// @param {Boolean} $important [false] - Whether to mark declarations as\n/// `!important`. Generally Used to create override classes.\n/// @access public\n\n@mixin govuk-typography-weight-bold($important: false) {\n font-weight: $govuk-font-weight-bold if($important, !important, null);\n}\n\n/// Convert line-heights specified in pixels into a relative value, unless\n/// they are already unit-less (and thus already treated as relative values)\n/// or the units do not match the units used for the font size.\n///\n/// @param {Number} $line-height Line height\n/// @param {Number} $font-size Font size\n/// @return {Number} The line height as either a relative value or unmodified\n///\n/// @access private\n\n@function _govuk-line-height($line-height, $font-size) {\n @if not unitless($line-height) and unit($line-height) == unit($font-size) {\n $line-height: $line-height / $font-size;\n }\n\n @return $line-height;\n}\n\n/// Responsive typography helper\n///\n/// Takes a point from the responsive 'font map' as an argument (the size as it\n/// would appear on tablet and above), and uses it to create font-size and\n/// line-height declarations for different breakpoints, and print.\n///\n/// Example font map:\n///\n/// 19: (\n/// null: (\n/// font-size: 16px,\n/// line-height: 20px\n/// ),\n/// tablet: (\n/// font-size: 19px,\n/// line-height: 25px\n/// ),\n/// print: (\n/// font-size: 14pt,\n/// line-height: 1.15\n/// )\n/// );\n///\n/// @param {Number} $size - Point from the spacing scale (the size as it would\n/// appear on tablet and above)\n/// @param {Number} $override-line-height [false] - Non responsive custom line\n/// height. Omit to use the line height from the font map.\n/// @param {Boolean} $important [false] - Whether to mark declarations as\n/// `!important`.\n///\n/// @throw if `$size` is not a valid point from the spacing scale\n///\n/// @access public\n\n@mixin govuk-typography-responsive($size, $override-line-height: false, $important: false) {\n\n @if not map-has-key($govuk-typography-scale, $size) {\n @error \"Unknown font size `#{$size}` - expected a point from the typography scale.\";\n }\n\n $font-map: map-get($govuk-typography-scale, $size);\n\n @each $breakpoint, $breakpoint-map in $font-map {\n $font-size: map-get($breakpoint-map, \"font-size\");\n $font-size-rem: govuk-px-to-rem($font-size);\n\n $line-height: _govuk-line-height(\n $line-height: if(\n $override-line-height,\n $override-line-height,\n map-get($breakpoint-map, \"line-height\")\n ),\n $font-size: $font-size\n );\n\n // Mark rules as !important if $important is true - this will result in\n // these variables becoming strings, so this needs to happen *after* they\n // are used in calculations\n $font-size: $font-size if($important, !important, null);\n $font-size-rem: $font-size-rem if($important, !important, null);\n $line-height: $line-height if($important, !important, null);\n\n @if not $breakpoint {\n font-size: $font-size;\n @if $govuk-typography-use-rem {\n font-size: $font-size-rem;\n }\n line-height: $line-height;\n } @else if $breakpoint == \"print\" {\n @include govuk-media-query($media-type: print) {\n font-size: $font-size;\n line-height: $line-height;\n }\n } @else {\n @include govuk-media-query($from: $breakpoint) {\n font-size: $font-size;\n @if $govuk-typography-use-rem {\n font-size: $font-size-rem;\n }\n line-height: $line-height;\n }\n }\n }\n}\n\n/// Font helper\n///\n/// @param {Number | Boolean} $size Point from the spacing scale (the size as it\n/// would appear on tablet and above). Use `false` to avoid setting a size.\n/// @param {String} $weight [regular] - Weight: `bold` or `regular`\n/// @param {Boolean} $tabular [false] - Whether to use tabular numbers or not\n/// @param {Number} $line-height [false] - Line-height, if overriding the\n/// default\n///\n/// @throw if `$size` is not a valid point from the spacing scale (or false)\n///\n/// @access public\n\n@mixin govuk-font($size, $weight: regular, $tabular: false, $line-height: false) {\n @if $tabular {\n // if govuk-font-family-tabular is set use $govuk-font-family-tabular\n @if $govuk-font-family-tabular {\n @include govuk-typography-common($font-family: $govuk-font-family-tabular);\n } @else {\n @include govuk-typography-common;\n -webkit-font-feature-settings: \"tnum\" 1;\n font-feature-settings: \"tnum\" 1;\n\n @supports (font-variant-numeric: tabular-nums) {\n -webkit-font-feature-settings: normal;\n font-feature-settings: normal;\n font-variant-numeric: tabular-nums;\n }\n }\n } @else {\n @include govuk-typography-common;\n }\n\n @if $weight == regular {\n @include govuk-typography-weight-regular;\n } @else if $weight == bold {\n @include govuk-typography-weight-bold;\n }\n\n @if $size {\n @include govuk-typography-responsive($size, $override-line-height: $line-height);\n }\n}\n", "@import \"compatibility\";\n@import \"typography-font-families\";\n\n////\n/// @group settings/typography\n////\n\n/// Use 'legacy' fonts\n///\n/// Whether or not to use v1 nta font from GOV.UK Elements / Frontend\n/// Toolkit, for teams that are migrating to GOV.UK Frontend and may be using\n/// components from both places in a single application.\n///\n/// @type Boolean\n/// @access public\n/// @deprecated Will be removed in v5.0 with the rest of the compatibility mode\n/// suite of tools and settings\n\n$govuk-use-legacy-font: if(\n (\n $govuk-compatibility-govukfrontendtoolkit or\n $govuk-compatibility-govuktemplate or\n $govuk-compatibility-govukelements\n ),\n true,\n false\n) !default;\n\n// Only show the deprecation warning if user is setting $govuk-use-legacy-font\n// manually instead of automatically via compatibility variables\n@if $govuk-use-legacy-font == true and\n $govuk-compatibility-govukfrontendtoolkit == false and\n $govuk-compatibility-govuktemplate == false and\n $govuk-compatibility-govukelements == false {\n @include _warning(legacy-font, \"$govuk-use-legacy-font is deprecated. \" +\n \"From version 5.0, GOV.UK Frontend will only support the included version \" +\n \"of GDS Transport.\");\n}\n\n// =========================================================\n// Font families\n// =========================================================\n\n/// Font families to use for all typography on screen media\n///\n/// @type List\n/// @access public\n\n$govuk-font-family: if(\n $govuk-use-legacy-font,\n $govuk-font-family-nta,\n $govuk-font-family-gds-transport\n) !default;\n\n/// Font families to use when displaying tabular numbers\n///\n/// @type List\n/// @access public\n/// @deprecated Will be removed in v5.0 with the rest of the compatibility mode\n/// suite of tools and settings\n\n$govuk-font-family-tabular: if(\n $govuk-use-legacy-font,\n $govuk-font-family-nta-tabular,\n false\n) !default;\n\n// Only show the deprecation warning if user is setting $govuk-font-family-tabular\n// manually instead of automatically via $govuk-use-legacy-font\n@if $govuk-font-family-tabular != false and $govuk-use-legacy-font == false {\n @include _warning(tabular-font-face, \"$govuk-font-family-tabular is deprecated. \" +\n \"From version 5.0, GOV.UK Frontend will not support using a separate \" +\n \"font-face for tabular numbers.\");\n}\n\n/// Font families to use for print media\n///\n/// We recommend that you use system fonts when printing. This will avoid issues\n/// with some printer drivers and operating systems.\n///\n/// @type List\n/// @access public\n\n$govuk-font-family-print: sans-serif !default;\n\n/// Include the default @font-face declarations\n///\n/// If you have set $govuk-font-family to something other than\n/// `$govuk-font-family-gds-transport` this option is disabled by default.\n///\n/// @type Boolean\n/// @access public\n\n$govuk-include-default-font-face: (\n $govuk-font-family == $govuk-font-family-gds-transport\n) !default;\n\n// =========================================================\n// Font weights\n// =========================================================\n\n/// Font weight for regular typography\n///\n/// @type Number\n/// @access public\n$govuk-font-weight-regular: 400 !default;\n\n/// Font weight for bold typography\n///\n/// @type Number\n/// @access public\n$govuk-font-weight-bold: 700 !default;\n", "////\n/// @group helpers/links\n////\n\n/// Common link styles\n///\n/// Provides the typography and focus state, regardless of link style.\n///\n/// @access public\n\n@mixin govuk-link-common {\n @include govuk-typography-common;\n @include govuk-link-decoration;\n\n &:hover {\n @include govuk-link-hover-decoration;\n }\n\n &:focus {\n @include govuk-focused-text;\n }\n}\n\n/// Link decoration\n///\n/// Provides the text decoration for links, including thickness and underline\n/// offset. Use this mixin only if you cannot use the `govuk-link-common` mixin.\n///\n/// @access public\n@mixin govuk-link-decoration {\n text-decoration: underline;\n\n @if $govuk-new-link-styles {\n @if $govuk-link-underline-thickness {\n text-decoration-thickness: $govuk-link-underline-thickness;\n }\n\n @if $govuk-link-underline-offset {\n text-underline-offset: $govuk-link-underline-offset;\n }\n }\n}\n\n/// Link hover decoration\n///\n/// Provides the text decoration for links in their hover state, for you to use\n/// within a `:hover` pseudo-selector. Use this mixin only if you cannot use the\n/// `govuk-link-common` mixin.\n///\n/// @access public\n\n@mixin govuk-link-hover-decoration {\n @if $govuk-new-link-styles and $govuk-link-hover-underline-thickness {\n text-decoration-thickness: $govuk-link-hover-underline-thickness;\n // Disable ink skipping on underlines on hover. Browsers haven't\n // standardised on this part of the spec yet, so set both properties\n -webkit-text-decoration-skip-ink: none;\n text-decoration-skip-ink: none; // Chromium, Firefox\n -webkit-text-decoration-skip: none;\n text-decoration-skip: none; // Safari\n }\n}\n\n/// Default link styles\n///\n/// Makes links use the default unvisited, visited, hover and active colours.\n///\n/// If you use this mixin in a component, you must also include the\n/// `govuk-link-common` mixin to get the correct focus and hover states.\n///\n/// @example scss\n/// .govuk-component__link {\n/// @include govuk-link-common;\n/// @include govuk-link-style-default;\n/// }\n///\n/// @access public\n\n@mixin govuk-link-style-default {\n &:link {\n color: $govuk-link-colour;\n }\n\n &:visited {\n color: $govuk-link-visited-colour;\n }\n\n &:hover {\n color: $govuk-link-hover-colour;\n }\n\n &:active {\n color: $govuk-link-active-colour;\n }\n\n // When focussed, the text colour needs to be darker to ensure that colour\n // contrast is still acceptable\n &:focus {\n color: $govuk-focus-text-colour;\n }\n\n // alphagov/govuk_template includes a specific a:link:focus selector\n // designed to make unvisited link s a slightly darker blue when focussed, so\n // we need to override the text colour for that combination of selectors so\n // so that unvisited links styled as buttons do not end up with dark blue\n // text when focussed.\n @include _govuk-compatibility(govuk_template) {\n &:link:focus {\n color: $govuk-focus-text-colour;\n }\n }\n}\n\n/// Error link styles\n///\n/// Makes links use the error colour. The link will darken if it's active or a\n/// user hovers their cursor over it.\n///\n/// If you use this mixin in a component, you must also include the\n/// `govuk-link-common` mixin to get the correct focus and hover states.\n///\n/// @example scss\n/// .govuk-component__link {\n/// @include govuk-link-common;\n/// @include govuk-link-style-error;\n/// }\n///\n/// @access public\n\n@mixin govuk-link-style-error {\n &:link,\n &:visited {\n color: $govuk-error-colour;\n }\n\n &:hover {\n color: scale-color($govuk-error-colour, $lightness: -30%);\n }\n\n &:active {\n color: $govuk-error-colour;\n }\n\n // When focussed, the text colour needs to be darker to ensure that colour\n // contrast is still acceptable\n &:focus {\n color: $govuk-focus-text-colour;\n }\n\n // alphagov/govuk_template includes a specific a:link:focus selector\n // designed to make unvisited link s a slightly darker blue when focussed, so\n // we need to override the text colour for that combination of selectors so\n // so that unvisited links styled as buttons do not end up with dark blue\n // text when focussed.\n @include _govuk-compatibility(govuk_template) {\n &:link:focus {\n color: $govuk-focus-text-colour;\n }\n }\n}\n\n/// Success link styles\n///\n/// Makes links use the success colour. The link will darken if it's active or a\n/// user hovers their cursor over it.\n///\n/// If you use this mixin in a component, you must also include the\n/// `govuk-link-common` mixin to get the correct focus and hover states.\n///\n/// @example scss\n/// .govuk-component__link {\n/// @include govuk-link-common;\n/// @include govuk-link-style-success;\n/// }\n///\n/// @access public\n\n@mixin govuk-link-style-success {\n &:link,\n &:visited {\n color: $govuk-success-colour;\n }\n\n &:hover {\n color: scale-color($govuk-success-colour, $lightness: -30%);\n }\n\n &:active {\n color: $govuk-success-colour;\n }\n\n // When focussed, the text colour needs to be darker to ensure that colour\n // contrast is still acceptable\n &:focus {\n color: $govuk-focus-text-colour;\n }\n\n // alphagov/govuk_template includes a specific a:link:focus selector\n // designed to make unvisited link s a slightly darker blue when focussed, so\n // we need to override the text colour for that combination of selectors so\n // so that unvisited links styled as buttons do not end up with dark blue\n // text when focussed.\n @include _govuk-compatibility(govuk_template) {\n &:link:focus {\n color: $govuk-focus-text-colour;\n }\n }\n}\n\n/// Muted link styles\n///\n/// Makes links use the secondary text colour. The link will darken if it's\n/// active or a user hovers their cursor over it.\n///\n/// If you use this mixin in a component, you must also include the\n/// `govuk-link-common` mixin to get the correct focus and hover states.\n///\n/// @example scss\n/// .govuk-component__link {\n/// @include govuk-link-common;\n/// @include govuk-link-style-muted;\n/// }\n///\n/// @access public\n\n@mixin govuk-link-style-muted {\n &:link,\n &:visited {\n color: $govuk-secondary-text-colour;\n }\n\n &:hover,\n &:active {\n color: $govuk-text-colour;\n }\n\n // When focussed, the text colour needs to be darker to ensure that colour\n // contrast is still acceptable\n &:focus {\n color: $govuk-focus-text-colour;\n }\n\n // alphagov/govuk_template includes a specific a:link:focus selector designed\n // to make unvisited links a slightly darker blue when focussed, so we need to\n // override the text colour for that combination of selectors.\n @include _govuk-compatibility(govuk_template) {\n &:link:focus {\n @include govuk-text-colour;\n }\n }\n}\n\n/// Text link styles\n///\n/// Makes links use the primary text colour, in all states. Use this mixin for\n/// navigation components, such as breadcrumbs or the back link.\n///\n/// If you use this mixin in a component, you must also include the\n/// `govuk-link-common` mixin to get the correct focus and hover states.\n///\n/// @example scss\n/// .govuk-component__link {\n/// @include govuk-link-common;\n/// @include govuk-link-style-text;\n/// }\n///\n/// @access public\n\n@mixin govuk-link-style-text {\n &:link,\n &:visited {\n @include govuk-text-colour;\n }\n\n // Force a colour change on hover to work around a bug in Safari\n // https://bugs.webkit.org/show_bug.cgi?id=224483\n &:hover {\n @if type-of($govuk-text-colour) == color {\n color: rgba($govuk-text-colour, .99);\n }\n }\n\n &:active,\n &:focus {\n @include govuk-text-colour;\n }\n\n // alphagov/govuk_template includes a specific a:link:focus selector designed\n // to make unvisited links a slightly darker blue when focussed, so we need to\n // override the text colour for that combination of selectors.\n @include _govuk-compatibility(govuk_template) {\n &:link:focus {\n @include govuk-text-colour;\n }\n }\n}\n\n/// Inverse link styles\n///\n/// Makes links white, in all states. Use this mixin if you're displaying links\n/// against a dark background.\n///\n/// If you use this mixin in a component, you must also include the\n/// `govuk-link-common` mixin to get the correct focus and hover states.\n///\n/// @example scss\n/// .govuk-component__link {\n/// @include govuk-link-common;\n/// @include govuk-link-style-inverse;\n/// }\n///\n/// @access public\n\n@mixin govuk-link-style-inverse {\n &:link,\n &:visited {\n color: govuk-colour(\"white\");\n }\n\n // Force a colour change on hover to work around a bug in Safari\n // https://bugs.webkit.org/show_bug.cgi?id=224483\n &:hover,\n &:active {\n color: rgba(govuk-colour(\"white\"), .99);\n }\n\n &:focus {\n color: $govuk-focus-text-colour;\n }\n\n // alphagov/govuk_template includes a specific a:link:focus selector designed\n // to make unvisited links a slightly darker blue when focussed, so we need to\n // override the text colour for that combination of selectors.\n @include _govuk-compatibility(govuk_template) {\n &:link:focus {\n color: $govuk-focus-text-colour;\n }\n }\n}\n\n/// Default link styles, without a visited state\n///\n/// Makes links use the default unvisited, hover and active colours, with no\n/// distinct visited state.\n///\n/// Use this mixin when it's not helpful to distinguish between visited and\n/// non-visited links. For example, when you link to pages with\n/// frequently-changing content, such as the dashboard for an admin interface.\n///\n/// If you use this mixin in a component, you must also include the\n/// `govuk-link-common` mixin to get the correct focus and hover states.\n///\n/// @example scss\n/// .govuk-component__link {\n/// @include govuk-link-common;\n/// @include govuk-link-style-no-visited-state;\n/// }\n///\n/// @access public\n\n@mixin govuk-link-style-no-visited-state {\n &:link {\n color: $govuk-link-colour;\n }\n\n &:visited {\n color: $govuk-link-colour;\n }\n\n &:hover {\n color: $govuk-link-hover-colour;\n }\n\n &:active {\n color: $govuk-link-active-colour;\n }\n\n // When focussed, the text colour needs to be darker to ensure that colour\n // contrast is still acceptable\n &:focus {\n color: $govuk-focus-text-colour;\n }\n}\n\n/// Remove underline from links\n///\n/// Remove underlines from links unless the link is active or a user hovers\n/// their cursor over it. This has no effect in Internet Explorer 8 (IE8),\n/// because IE8 does not support `:not`.\n///\n/// @example scss\n/// .govuk-component__link {\n/// @include govuk-link-common;\n/// @include govuk-link-style-default;\n/// @include govuk-link-style-no-underline;\n/// }\n///\n/// @access public\n\n@mixin govuk-link-style-no-underline {\n &:not(:hover):not(:active) {\n text-decoration: none;\n }\n}\n\n/// Include link destination when printing the page\n///\n/// If the user prints the page, add the destination URL after the link text, if\n/// the URL starts with `/`, `http://` or `https://`.\n///\n/// @access public\n\n@mixin govuk-link-print-friendly {\n @include govuk-media-query($media-type: print) {\n &[href^=\"/\"],\n &[href^=\"http://\"],\n &[href^=\"https://\"] {\n &:after {\n content: \" (\" attr(href) \")\";\n font-size: 90%;\n\n // Because the URLs may be very long, ensure that they may be broken\n // at arbitrary points if there are no otherwise acceptable break\n // points in the line\n word-wrap: break-word;\n }\n }\n }\n}\n", "////\n/// @group helpers\n////\n\n@import \"../tools/exports\";\n\n/// Font Face - GDS Transport\n///\n/// Outputs the font-face declaration for GDS Transport at the root of the CSS document\n/// the first time it is called.\n///\n/// @access private\n\n@mixin _govuk-font-face-gds-transport {\n @include _govuk-not-ie8 { // In IE8, which cannot render WOFF format, we fall back to system fonts\n @include govuk-exports(\"govuk/helpers/font-faces\") {\n @at-root {\n /*! Copyright (c) 2011 by Margaret Calvert & Henrik Kubel. All rights reserved. The font has been customised for exclusive use on gov.uk. This cut is not commercially available. */ /* stylelint-disable-line scss/comment-no-loud */\n @font-face {\n font-family: \"GDS Transport\";\n font-style: normal;\n font-weight: normal;\n src:\n govuk-font-url(\"light-94a07e06a1-v2.woff2\") format(\"woff2\"),\n govuk-font-url(\"light-f591b13f7d-v2.woff\") format(\"woff\");\n font-display: fallback;\n }\n\n @font-face {\n font-family: \"GDS Transport\";\n font-style: normal;\n font-weight: bold;\n src:\n govuk-font-url(\"bold-b542beb274-v2.woff2\") format(\"woff2\"),\n govuk-font-url(\"bold-affa96571d-v2.woff\") format(\"woff\");\n font-display: fallback;\n }\n }\n }\n }\n}\n", "// mq() v4.0.2\n// sass-mq/sass-mq\n\n@charset \"UTF-8\"; // Fixes an issue where Ruby locale is not set properly\n // See https://github.com/sass-mq/sass-mq/pull/10\n\n/// Base font size on the `` element\n/// @type Number (unit)\n$mq-base-font-size: 16px !default;\n\n/// Responsive mode\n///\n/// Set to `false` to enable support for browsers that do not support @media queries,\n/// (IE <= 8, Firefox <= 3, Opera <= 9)\n///\n/// You could create a stylesheet served exclusively to older browsers,\n/// where @media queries are rasterized\n///\n/// @example scss\n/// // old-ie.scss\n/// $mq-responsive: false;\n/// @import 'main'; // @media queries in this file will be rasterized up to $mq-static-breakpoint\n/// // larger breakpoints will be ignored\n///\n/// @type Boolean\n/// @link https://github.com/sass-mq/sass-mq#responsive-mode-off Disabled responsive mode documentation\n$mq-responsive: true !default;\n\n/// Breakpoint list\n///\n/// Name your breakpoints in a way that creates a ubiquitous language\n/// across team members. It will improve communication between\n/// stakeholders, designers, developers, and testers.\n///\n/// @type Map\n/// @link https://github.com/sass-mq/sass-mq#seeing-the-currently-active-breakpoint Full documentation and examples\n$mq-breakpoints: (\n mobile: 320px,\n tablet: 740px,\n desktop: 980px,\n wide: 1300px\n) !default;\n\n/// Static breakpoint (for fixed-width layouts)\n///\n/// Define the breakpoint from $mq-breakpoints that should\n/// be used as the target width for the fixed-width layout\n/// (i.e. when $mq-responsive is set to 'false') in a old-ie.scss\n///\n/// @example scss\n/// // tablet-only.scss\n/// //\n/// // Ignore all styles above tablet breakpoint,\n/// // and fix the styles (e.g. layout) at tablet width\n/// $mq-responsive: false;\n/// $mq-static-breakpoint: tablet;\n/// @import 'main'; // @media queries in this file will be rasterized up to tablet\n/// // larger breakpoints will be ignored\n///\n/// @type String\n/// @link https://github.com/sass-mq/sass-mq#adding-custom-breakpoints Full documentation and examples\n$mq-static-breakpoint: desktop !default;\n\n/// Show breakpoints in the top right corner\n///\n/// If you want to display the currently active breakpoint in the top\n/// right corner of your site during development, add the breakpoints\n/// to this list, ordered by width, e.g. (mobile, tablet, desktop).\n///\n/// @type map\n$mq-show-breakpoints: () !default;\n\n/// Customize the media type (e.g. `@media screen` or `@media print`)\n/// By default sass-mq uses an \"all\" media type (`@media all and …`)\n///\n/// @type String\n/// @link https://github.com/sass-mq/sass-mq#changing-media-type Full documentation and examples\n$mq-media-type: all !default;\n\n/// Convert pixels to ems\n///\n/// @param {Number} $px - value to convert\n/// @param {Number} $base-font-size ($mq-base-font-size) - `` font size\n///\n/// @example scss\n/// $font-size-in-ems: mq-px2em(16px);\n/// p { font-size: mq-px2em(16px); }\n///\n/// @requires $mq-base-font-size\n/// @returns {Number}\n@function mq-px2em($px, $base-font-size: $mq-base-font-size) {\n @if unitless($px) {\n @warn \"Assuming #{$px} to be in pixels, attempting to convert it into pixels.\";\n @return mq-px2em($px * 1px, $base-font-size);\n } @else if unit($px) == em {\n @return $px;\n }\n @return ($px / $base-font-size) * 1em;\n}\n\n/// Get a breakpoint's width\n///\n/// @param {String} $name - Name of the breakpoint. One of $mq-breakpoints\n///\n/// @example scss\n/// $tablet-width: mq-get-breakpoint-width(tablet);\n/// @media (min-width: mq-get-breakpoint-width(desktop)) {}\n///\n/// @requires {Variable} $mq-breakpoints\n///\n/// @returns {Number} Value in pixels\n@function mq-get-breakpoint-width($name, $breakpoints: $mq-breakpoints) {\n @if map-has-key($breakpoints, $name) {\n @return map-get($breakpoints, $name);\n } @else {\n @warn \"Breakpoint #{$name} wasn't found in $breakpoints.\";\n }\n}\n\n/// Media Query mixin\n///\n/// @param {String | Boolean} $from (false) - One of $mq-breakpoints\n/// @param {String | Boolean} $until (false) - One of $mq-breakpoints\n/// @param {String | Boolean} $and (false) - Additional media query parameters\n/// @param {String} $media-type ($mq-media-type) - Media type: screen, print…\n///\n/// @ignore Undocumented API, for advanced use only:\n/// @ignore @param {Map} $breakpoints ($mq-breakpoints)\n/// @ignore @param {String} $static-breakpoint ($mq-static-breakpoint)\n///\n/// @content styling rules, wrapped into a @media query when $responsive is true\n///\n/// @requires {Variable} $mq-media-type\n/// @requires {Variable} $mq-breakpoints\n/// @requires {Variable} $mq-static-breakpoint\n/// @requires {function} mq-px2em\n/// @requires {function} mq-get-breakpoint-width\n///\n/// @link https://github.com/sass-mq/sass-mq#responsive-mode-on-default Full documentation and examples\n///\n/// @example scss\n/// .element {\n/// @include mq($from: mobile) {\n/// color: red;\n/// }\n/// @include mq($until: tablet) {\n/// color: blue;\n/// }\n/// @include mq(mobile, tablet) {\n/// color: green;\n/// }\n/// @include mq($from: tablet, $and: '(orientation: landscape)') {\n/// color: teal;\n/// }\n/// @include mq(950px) {\n/// color: hotpink;\n/// }\n/// @include mq(tablet, $media-type: screen) {\n/// color: hotpink;\n/// }\n/// // Advanced use:\n/// $my-breakpoints: (L: 900px, XL: 1200px);\n/// @include mq(L, $breakpoints: $my-breakpoints, $static-breakpoint: L) {\n/// color: hotpink;\n/// }\n/// }\n@mixin mq(\n $from: false,\n $until: false,\n $and: false,\n $media-type: $mq-media-type,\n $breakpoints: $mq-breakpoints,\n $responsive: $mq-responsive,\n $static-breakpoint: $mq-static-breakpoint\n) {\n $min-width: 0;\n $max-width: 0;\n $media-query: '';\n\n // From: this breakpoint (inclusive)\n @if $from {\n @if type-of($from) == number {\n $min-width: mq-px2em($from);\n } @else {\n $min-width: mq-px2em(mq-get-breakpoint-width($from, $breakpoints));\n }\n }\n\n // Until: that breakpoint (exclusive)\n @if $until {\n @if type-of($until) == number {\n $max-width: mq-px2em($until);\n } @else {\n $max-width: mq-px2em(mq-get-breakpoint-width($until, $breakpoints)) - .01em;\n }\n }\n\n // Responsive support is disabled, rasterize the output outside @media blocks\n // The browser will rely on the cascade itself.\n @if $responsive == false {\n $static-breakpoint-width: mq-get-breakpoint-width($static-breakpoint, $breakpoints);\n $target-width: mq-px2em($static-breakpoint-width);\n\n // Output only rules that start at or span our target width\n @if (\n $and == false\n and $min-width <= $target-width\n and (\n $until == false or $max-width >= $target-width\n )\n and $media-type != 'print'\n ) {\n @content;\n }\n }\n\n // Responsive support is enabled, output rules inside @media queries\n @else {\n @if $min-width != 0 { $media-query: '#{$media-query} and (min-width: #{$min-width})'; }\n @if $max-width != 0 { $media-query: '#{$media-query} and (max-width: #{$max-width})'; }\n @if $and { $media-query: '#{$media-query} and #{$and}'; }\n\n // Remove unnecessary media query prefix 'all and '\n @if ($media-type == 'all' and $media-query != '') {\n $media-type: '';\n $media-query: str-slice(unquote($media-query), 6);\n }\n\n @media #{$media-type + $media-query} {\n @content;\n }\n }\n}\n\n/// Quick sort\n///\n/// @author Sam Richards\n/// @access private\n/// @param {List} $list - List to sort\n/// @returns {List} Sorted List\n@function _mq-quick-sort($list) {\n $less: ();\n $equal: ();\n $large: ();\n\n @if length($list) > 1 {\n $seed: nth($list, ceil(length($list) / 2));\n\n @each $item in $list {\n @if ($item == $seed) {\n $equal: append($equal, $item);\n } @else if ($item < $seed) {\n $less: append($less, $item);\n } @else if ($item > $seed) {\n $large: append($large, $item);\n }\n }\n\n @return join(join(_mq-quick-sort($less), $equal), _mq-quick-sort($large));\n }\n\n @return $list;\n}\n\n/// Sort a map by values (works with numbers only)\n///\n/// @access private\n/// @param {Map} $map - Map to sort\n/// @returns {Map} Map sorted by value\n@function _mq-map-sort-by-value($map) {\n $map-sorted: ();\n $map-keys: map-keys($map);\n $map-values: map-values($map);\n $map-values-sorted: _mq-quick-sort($map-values);\n\n // Reorder key/value pairs based on key values\n @each $value in $map-values-sorted {\n $index: index($map-values, $value);\n $key: nth($map-keys, $index);\n $map-sorted: map-merge($map-sorted, ($key: $value));\n\n // Unset the value in $map-values to prevent the loop\n // from finding the same index twice\n $map-values: set-nth($map-values, $index, 0);\n }\n\n @return $map-sorted;\n}\n\n/// Add a breakpoint\n///\n/// @param {String} $name - Name of the breakpoint\n/// @param {Number} $width - Width of the breakpoint\n///\n/// @requires {Variable} $mq-breakpoints\n///\n/// @example scss\n/// @include mq-add-breakpoint(tvscreen, 1920px);\n/// @include mq(tvscreen) {}\n@mixin mq-add-breakpoint($name, $width) {\n $new-breakpoint: ($name: $width);\n $mq-breakpoints: map-merge($mq-breakpoints, $new-breakpoint) !global;\n $mq-breakpoints: _mq-map-sort-by-value($mq-breakpoints) !global;\n}\n\n/// Show the active breakpoint in the top right corner of the viewport\n/// @link https://github.com/sass-mq/sass-mq#seeing-the-currently-active-breakpoint\n///\n/// @param {List} $show-breakpoints ($mq-show-breakpoints) - List of breakpoints to show in the top right corner\n/// @param {Map} $breakpoints ($mq-breakpoints) - Breakpoint names and sizes\n///\n/// @requires {Variable} $mq-breakpoints\n/// @requires {Variable} $mq-show-breakpoints\n///\n/// @example scss\n/// // Show breakpoints using global settings\n/// @include mq-show-breakpoints;\n///\n/// // Show breakpoints using custom settings\n/// @include mq-show-breakpoints((L, XL), (S: 300px, L: 800px, XL: 1200px));\n@mixin mq-show-breakpoints($show-breakpoints: $mq-show-breakpoints, $breakpoints: $mq-breakpoints) {\n body:before {\n background-color: #FCF8E3;\n border-bottom: 1px solid #FBEED5;\n border-left: 1px solid #FBEED5;\n color: #C09853;\n font: small-caption;\n padding: 3px 6px;\n pointer-events: none;\n position: fixed;\n right: 0;\n top: 0;\n z-index: 100;\n\n // Loop through the breakpoints that should be shown\n @each $show-breakpoint in $show-breakpoints {\n $width: mq-get-breakpoint-width($show-breakpoint, $breakpoints);\n @include mq($show-breakpoint, $breakpoints: $breakpoints) {\n content: \"#{$show-breakpoint} ≥ #{$width} (#{mq-px2em($width)})\";\n }\n }\n }\n}\n\n@if length($mq-show-breakpoints) > 0 {\n @include mq-show-breakpoints;\n}\n", "////\n/// @group helpers/accessibility\n////\n\n/// Focused text\n///\n/// Provides an outline to clearly indicate when the target element is focused.\n/// Used for interactive text-based elements.\n///\n/// @access public\n\n@mixin govuk-focused-text {\n // When colours are overridden, for example when users have a dark mode,\n // backgrounds and box-shadows disappear, so we need to ensure there's a\n // transparent outline which will be set to a visible colour.\n\n // Since Internet Explorer 8 does not support box-shadow, we want to force the\n // user-agent outlines\n @include _govuk-not-ie8 {\n outline: $govuk-focus-width solid transparent;\n }\n color: $govuk-focus-text-colour;\n background-color: $govuk-focus-colour;\n box-shadow: 0 -2px $govuk-focus-colour, 0 4px $govuk-focus-text-colour;\n // When link is focussed, hide the default underline since the\n // box shadow adds the \"underline\"\n text-decoration: none;\n\n // When a focused box is broken by e.g. a line break, ensure that the\n // box-shadow is applied to each fragment independently.\n -webkit-box-decoration-break: clone;\n box-decoration-break: clone;\n}\n", "////\n/// @group settings/colours\n////\n\n@import \"../helpers/colour\";\n\n// =========================================================\n// Generic\n// =========================================================\n\n/// Brand colour\n///\n/// @type Colour\n/// @access public\n\n$govuk-brand-colour: govuk-colour(\"blue\") !default;\n\n/// Text colour\n///\n/// @type Colour\n/// @access public\n\n$govuk-text-colour: govuk-colour(\"black\") !default;\n\n/// Canvas background colour\n///\n/// Used by the footer component and template to give the illusion of a long\n/// footer.\n///\n/// @type Colour\n/// @access public\n\n$govuk-canvas-background-colour: govuk-colour(\"light-grey\", $legacy: \"grey-3\") !default;\n\n/// Body background colour\n///\n/// @type Colour\n/// @access public\n\n$govuk-body-background-colour: govuk-colour(\"white\") !default;\n\n/// Text colour for print media\n///\n/// Use 'true black' to avoid printers using colour ink to print body text\n///\n/// @type Colour\n/// @access public\n\n$govuk-print-text-colour: #000000 !default;\n\n/// Secondary text colour\n///\n/// Used in for example 'muted' text and help text.\n///\n/// @type Colour\n/// @access public\n\n$govuk-secondary-text-colour: govuk-colour(\"dark-grey\", $legacy: \"grey-1\") !default;\n\n/// Focus colour\n///\n/// Used for outline (and background, where appropriate) when interactive\n/// elements (links, form controls) have keyboard focus.\n///\n/// @type Colour\n/// @access public\n\n$govuk-focus-colour: govuk-colour(\"yellow\") !default;\n\n/// Focused text colour\n///\n/// Ensure that the contrast between the text and background colour passes\n/// WCAG Level AA contrast requirements.\n///\n/// @type Colour\n/// @access public\n\n$govuk-focus-text-colour: govuk-colour(\"black\") !default;\n\n/// Error colour\n///\n/// Used to highlight error messages and form controls in an error state\n///\n/// @type Colour\n/// @access public\n\n$govuk-error-colour: govuk-colour(\"red\") !default;\n\n/// Success colour\n///\n/// Used to highlight success messages and banners\n///\n/// @type Colour\n/// @access public\n\n$govuk-success-colour: govuk-colour(\"green\") !default;\n\n/// Border colour\n///\n/// Used in for example borders, separators, rules and keylines.\n///\n/// @type Colour\n/// @access public\n\n$govuk-border-colour: govuk-colour(\"mid-grey\", $legacy: \"grey-2\");\n\n/// Input border colour\n///\n/// Used for form inputs and controls\n///\n/// @type Colour\n/// @access public\n\n$govuk-input-border-colour: govuk-colour(\"black\") !default;\n\n/// Input hover colour\n///\n/// Used for hover states on form controls\n///\n/// @type Colour\n/// @access public\n\n$govuk-hover-colour: govuk-colour(\"mid-grey\", $legacy: \"grey-3\");\n\n// =============================================================================\n// Links\n// =============================================================================\n\n/// Link colour\n///\n/// @type Colour\n/// @access public\n\n$govuk-link-colour: govuk-colour(\"blue\") !default;\n\n/// Visited link colour\n///\n/// @type Colour\n/// @access public\n\n$govuk-link-visited-colour: govuk-colour(\"purple\", $legacy: #4c2c92) !default;\n\n/// Link hover colour\n///\n/// @type Colour\n/// @access public\n\n$govuk-link-hover-colour: govuk-colour(\"dark-blue\", $legacy: \"light-blue\") !default;\n\n/// Active link colour\n///\n/// @type Colour\n/// @access public\n\n$govuk-link-active-colour: govuk-colour(\"black\", $legacy: \"light-blue\") !default;\n", "@include govuk-exports(\"govuk/core/lists\") {\n\n %govuk-list {\n @include govuk-font($size: 19);\n @include govuk-text-colour;\n margin-top: 0;\n @include govuk-responsive-margin(4, \"bottom\");\n padding-left: 0;\n list-style-type: none;\n\n // Add a top margin for nested lists\n %govuk-list {\n margin-top: govuk-spacing(2);\n }\n }\n\n %govuk-list > li {\n // Lists without numbers or bullets should always have extra space between\n // list items. Lists with numbers or bullets only have this extra space on\n // tablet and above\n margin-bottom: govuk-spacing(1);\n }\n\n .govuk-list {\n @extend %govuk-list;\n }\n\n %govuk-list--bullet {\n padding-left: govuk-spacing(4);\n list-style-type: disc;\n }\n\n %govuk-list--number {\n padding-left: govuk-spacing(4);\n list-style-type: decimal;\n }\n\n %govuk-list--bullet > li,\n %govuk-list--number > li {\n margin-bottom: 0;\n\n @include govuk-media-query($from: tablet) {\n margin-bottom: govuk-spacing(1);\n }\n }\n\n %govuk-list--spaced > li {\n margin-bottom: govuk-spacing(2);\n\n @include govuk-media-query($from: tablet) {\n margin-bottom: govuk-spacing(3);\n }\n }\n\n .govuk-list--bullet {\n @extend %govuk-list--bullet;\n }\n\n .govuk-list--number {\n @extend %govuk-list--number;\n }\n\n .govuk-list--spaced {\n @extend %govuk-list--spaced;\n }\n}\n", "////\n/// @group helpers/spacing\n////\n\n// stylelint-disable indentation\n\n/// Single point spacing\n///\n/// Returns measurement corresponding to the spacing point requested.\n///\n/// @param {Number} $spacing-point - Point on the spacing scale\n/// (set in `settings/_spacing.scss`)\n///\n/// @returns {String} Spacing measurement eg. 10px\n///\n/// @example scss\n/// .element {\n/// padding: govuk-spacing(5);\n/// }\n///\n/// @example scss Using negative spacing\n/// .element {\n/// margin-top: govuk-spacing(-1);\n/// }\n///\n/// @example scss Marking spacing declarations as important\n/// .element {\n/// margin-top: govuk-spacing(1) !important;\n/// }\n///\n/// @access public\n\n@function govuk-spacing($spacing-point) {\n\n $actual-input-type: type-of($spacing-point);\n @if $actual-input-type != \"number\" {\n @error \"Expected a number (integer), but got a \"\n + \"#{$actual-input-type}.\";\n }\n\n $is-negative: false;\n @if $spacing-point < 0 {\n $is-negative: true;\n $spacing-point: abs($spacing-point);\n }\n\n @if not map-has-key($govuk-spacing-points, $spacing-point) {\n @error \"Unknown spacing variable `#{$spacing-point}`. Make sure you are using a point from the spacing scale in `_settings/spacing.scss`.\";\n }\n\n $value: map-get($govuk-spacing-points, $spacing-point);\n @return if($is-negative, $value * -1, $value);\n}\n\n/// Responsive spacing\n///\n/// Adds responsive spacing (either padding or margin, depending on `$property`)\n/// by fetching a 'spacing map' from the responsive spacing scale, which defines\n/// different spacing values at different breakpoints.\n///\n/// To generate responsive spacing, use 'govuk-responsive-margin' or\n/// 'govuk-responsive-padding' mixins\n///\n/// @param {Number} $responsive-spacing-point - Point on the responsive spacing\n/// scale, corresponds to a map of breakpoints and spacing values\n/// @param {String} $property - Property to add spacing to (e.g. 'margin')\n/// @param {String} $direction [all] - Direction to add spacing to\n/// (`top`, `right`, `bottom`, `left`, `all`)\n/// @param {Boolean} $important [false] - Whether to mark as `!important`\n/// @param {Number} $adjustment [false] - Offset to adjust spacing by\n///\n/// @access private\n\n@mixin _govuk-responsive-spacing($responsive-spacing-point, $property, $direction: \"all\", $important: false, $adjustment: false) {\n\n $actual-input-type: type-of($responsive-spacing-point);\n @if $actual-input-type != \"number\" {\n @error \"Expected a number (integer), but got a \" + \"#{$actual-input-type}.\";\n }\n\n @if not map-has-key($govuk-spacing-responsive-scale, $responsive-spacing-point) {\n @error \"Unknown spacing point `#{$responsive-spacing-point}`. Make sure you are using a point from the \"\n + \"responsive spacing scale in `_settings/spacing.scss`.\";\n }\n\n // Make sure that the return value from `_settings/spacing.scss` is a map.\n $scale-map: map-get($govuk-spacing-responsive-scale, $responsive-spacing-point);\n $actual-map-type: type-of($scale-map);\n @if $actual-map-type != \"map\" {\n @error \"Expected a number (integer), but got a \"\n + \"#{$actual-map-type}. Make sure you are using a map to set the responsive spacing in `_settings/spacing.scss`)\";\n }\n\n // Loop through each breakpoint in the map\n @each $breakpoint, $breakpoint-value in $scale-map {\n\n @if $adjustment {\n $breakpoint-value: $breakpoint-value + $adjustment;\n }\n\n // The 'null' breakpoint is for mobile.\n @if not $breakpoint {\n\n @if $direction == all {\n #{$property}: $breakpoint-value if($important, !important, null);\n } @else {\n #{$property}-#{$direction}: $breakpoint-value if($important, !important, null);\n }\n } @else {\n @include govuk-media-query($from: $breakpoint) {\n @if $direction == all {\n #{$property}: $breakpoint-value if($important, !important, null);\n } @else {\n #{$property}-#{$direction}: $breakpoint-value if($important, !important, null);\n }\n }\n }\n }\n}\n\n/// Responsive margin\n///\n/// Adds responsive margin by fetching a 'spacing map' from the responsive\n/// spacing scale, which defines different spacing values at different\n/// breakpoints. Wrapper for the `_govuk-responsive-spacing` mixin.\n///\n/// @see {mixin} _govuk-responsive-spacing\n///\n/// @param {Number} $responsive-spacing-point - Point on the responsive spacing\n/// scale, corresponds to a map of breakpoints and spacing values\n/// @param {String} $direction [all] - Direction to add spacing to\n/// (`top`, `right`, `bottom`, `left`, `all`)\n/// @param {Boolean} $important [false] - Whether to mark as `!important`\n/// @param {Number} $adjustment [false] - Offset to adjust spacing by\n///\n/// @example scss\n/// .element {\n/// @include govuk-responsive-margin(6, \"left\", $adjustment: 1px);\n/// }\n///\n/// @access public\n\n@mixin govuk-responsive-margin($responsive-spacing-point, $direction: \"all\", $important: false, $adjustment: false) {\n @include _govuk-responsive-spacing($responsive-spacing-point, \"margin\", $direction, $important, $adjustment);\n}\n\n/// Responsive padding\n///\n/// Adds responsive padding by fetching a 'spacing map' from the responsive\n/// spacing scale, which defines different spacing values at different\n/// breakpoints. Wrapper for the `_govuk-responsive-spacing` mixin.\n///\n/// @see {mixin} _govuk-responsive-spacing\n///\n/// @param {Number} $responsive-spacing-point - Point on the responsive spacing\n/// scale, corresponds to a map of breakpoints and spacing values\n/// @param {String} $direction [all] - Direction to add spacing to\n/// (`top`, `right`, `bottom`, `left`, `all`)\n/// @param {Boolean} $important [false] - Whether to mark as `!important`\n/// @param {Number} $adjustment [false] - Offset to adjust spacing\n///\n/// @example scss\n/// .element {\n/// @include govuk-responsive-padding(6, \"left\", $adjustment: 1px);\n/// }\n///\n/// @access public\n\n@mixin govuk-responsive-padding($responsive-spacing-point, $direction: \"all\", $important: false, $adjustment: false) {\n @include _govuk-responsive-spacing($responsive-spacing-point, \"padding\", $direction, $important, $adjustment);\n}\n", "@include govuk-exports(\"govuk/core/typography\") {\n\n // Headings\n\n %govuk-heading-xl {\n @include govuk-text-colour;\n @include govuk-font($size: 48, $weight: bold);\n\n display: block;\n\n margin-top: 0;\n @include govuk-responsive-margin(8, \"bottom\");\n }\n\n .govuk-heading-xl {\n @extend %govuk-heading-xl;\n }\n\n %govuk-heading-l {\n @include govuk-text-colour;\n @include govuk-font($size: 36, $weight: bold);\n\n display: block;\n\n margin-top: 0;\n @include govuk-responsive-margin(6, \"bottom\");\n }\n\n .govuk-heading-l {\n @extend %govuk-heading-l;\n }\n\n %govuk-heading-m {\n @include govuk-text-colour;\n @include govuk-font($size: 24, $weight: bold);\n\n display: block;\n\n margin-top: 0;\n @include govuk-responsive-margin(4, \"bottom\");\n }\n\n .govuk-heading-m {\n @extend %govuk-heading-m;\n }\n\n %govuk-heading-s {\n @include govuk-text-colour;\n @include govuk-font($size: 19, $weight: bold);\n\n display: block;\n\n margin-top: 0;\n @include govuk-responsive-margin(4, \"bottom\");\n }\n\n .govuk-heading-s {\n @extend %govuk-heading-s;\n }\n\n // Captions to be used inside headings\n\n .govuk-caption-xl {\n @include govuk-font($size: 27);\n\n display: block;\n\n margin-bottom: govuk-spacing(1);\n\n color: $govuk-secondary-text-colour;\n }\n\n .govuk-caption-l {\n @include govuk-font($size: 24);\n\n display: block;\n\n margin-bottom: govuk-spacing(1);\n color: $govuk-secondary-text-colour;\n\n @include govuk-media-query($from: tablet) {\n margin-bottom: 0;\n }\n }\n\n .govuk-caption-m {\n @include govuk-font($size: 19);\n\n display: block;\n\n color: $govuk-secondary-text-colour;\n }\n\n // Body (paragraphs)\n\n %govuk-body-l {\n @include govuk-text-colour;\n @include govuk-font($size: 24);\n\n margin-top: 0;\n @include govuk-responsive-margin(6, \"bottom\");\n }\n\n .govuk-body-l {\n @extend %govuk-body-l;\n }\n\n %govuk-body-m {\n @include govuk-text-colour;\n @include govuk-font($size: 19);\n\n margin-top: 0;\n @include govuk-responsive-margin(4, \"bottom\");\n }\n\n .govuk-body-m {\n @extend %govuk-body-m;\n }\n\n %govuk-body-s {\n @include govuk-text-colour;\n @include govuk-font($size: 16);\n\n margin-top: 0;\n @include govuk-responsive-margin(4, \"bottom\");\n }\n\n .govuk-body-s {\n @extend %govuk-body-s;\n }\n\n %govuk-body-xs {\n @include govuk-text-colour;\n @include govuk-font($size: 14);\n\n margin-top: 0;\n @include govuk-responsive-margin(4, \"bottom\");\n }\n\n .govuk-body-xs {\n @extend %govuk-body-xs;\n }\n\n // Usage aliases\n\n // Using extend to alias means we also inherit any contextual adjustments that\n // refer to the 'original' class name\n\n .govuk-body-lead {\n @extend %govuk-body-l;\n }\n\n .govuk-body {\n @extend %govuk-body-m;\n }\n\n // Contextual adjustments\n // Add top padding to headings that appear directly after paragraphs.\n\n %govuk-body-l + %govuk-heading-l {\n padding-top: govuk-spacing(1);\n\n @include govuk-media-query($from: tablet) {\n padding-top: govuk-spacing(2);\n }\n }\n\n %govuk-body-m + %govuk-heading-l,\n %govuk-body-s + %govuk-heading-l,\n %govuk-list + %govuk-heading-l {\n @include govuk-responsive-padding(4, \"top\");\n }\n\n %govuk-body-m + %govuk-heading-m,\n %govuk-body-s + %govuk-heading-m,\n %govuk-list + %govuk-heading-m,\n %govuk-body-m + %govuk-heading-s,\n %govuk-body-s + %govuk-heading-s,\n %govuk-list + %govuk-heading-s {\n padding-top: govuk-spacing(1);\n\n @include govuk-media-query($from: tablet) {\n padding-top: govuk-spacing(2);\n }\n }\n}\n", "@include govuk-exports(\"govuk/core/section-break\") {\n\n %govuk-section-break {\n margin: 0;\n border: 0;\n\n // fix double-width section break and forced visible section break\n // when combined with styles from alphagov/elements\n @include _govuk-compatibility(govuk_elements) {\n height: 0;\n }\n }\n\n .govuk-section-break {\n @extend %govuk-section-break;\n }\n\n // Sizes\n\n %govuk-section-break--xl {\n @include govuk-responsive-margin(8, \"top\");\n @include govuk-responsive-margin(8, \"bottom\");\n }\n\n .govuk-section-break--xl {\n @extend %govuk-section-break--xl;\n }\n\n %govuk-section-break--l {\n @include govuk-responsive-margin(6, \"top\");\n @include govuk-responsive-margin(6, \"bottom\");\n }\n\n .govuk-section-break--l {\n @extend %govuk-section-break--l;\n }\n\n %govuk-section-break--m {\n @include govuk-responsive-margin(4, \"top\");\n @include govuk-responsive-margin(4, \"bottom\");\n }\n\n .govuk-section-break--m {\n @extend %govuk-section-break--m;\n }\n\n // Visible variant\n\n %govuk-section-break--visible {\n border-bottom: 1px solid $govuk-border-colour;\n }\n\n .govuk-section-break--visible {\n @extend %govuk-section-break--visible;\n }\n}\n", "@import \"../base\";\n\n@include govuk-exports(\"govuk/objects/button-group\") {\n // Button groups can be used to group buttons and links together as a group.\n //\n // Within a button group:\n //\n // - links are styled to line up visually with the buttons, including being\n // centre-aligned on mobile\n // - spacing between the buttons and links is handled automatically, including\n // when they wrap across multiple lines\n .govuk-button-group {\n $horizontal-gap: govuk-spacing(3);\n $vertical-gap: govuk-spacing(3);\n\n // These need to be kept in sync with the button component's styles\n $button-padding: govuk-spacing(2);\n $button-shadow-size: $govuk-border-width-form-element;\n\n $link-spacing: govuk-spacing(1);\n\n @include govuk-responsive-margin(6, \"bottom\", $adjustment: $vertical-gap * -1);\n\n // Flexbox is used to center-align links on mobile, align everything along\n // the baseline on tablet and above, and to removes extra whitespace that\n // we'd get between the buttons and links because they're inline-blocks.\n //\n // Ideally we'd use `gap` with flexbox rather than having to do it all with\n // margins, but unfortunately the support isn't there (yet) and @supports\n // doesn't play nicely with it\n // (https://github.com/w3c/csswg-drafts/issues/3559)\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-align: center;\n align-items: center;\n\n // Give links within the button group the same font-size and line-height\n // as buttons.\n //\n // Because we want the focus state to be tight around the link text, we use\n // margins where the buttons would use padding.\n .govuk-link {\n @include govuk-font($size: 19, $line-height: 19px);\n display: inline-block;\n // Prevent links overflowing their container in IE10/11 because of bug\n // with align-items: center\n max-width: 100%;\n margin-top: $link-spacing;\n margin-bottom: $link-spacing + $vertical-gap;\n text-align: center;\n }\n\n // Reduce the bottom margin to the size of the vertical gap (accommodating\n // the button shadow) – the 'lost' margin is moved to the button-group.\n .govuk-button {\n margin-bottom: $vertical-gap + $button-shadow-size;\n }\n\n // On tablet and above, we also introduce a 'column gap' between the\n // buttons and links in each row and left align links\n @include govuk-media-query($from: tablet) {\n // Cancel out the column gap for the last item in each row\n margin-right: ($horizontal-gap * -1);\n\n -ms-flex-direction: row;\n\n flex-direction: row;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-align: baseline;\n align-items: baseline;\n\n .govuk-button,\n .govuk-link {\n margin-right: $horizontal-gap;\n }\n\n .govuk-link {\n text-align: left;\n }\n }\n }\n}\n", "@import \"../base\";\n\n@include govuk-exports(\"govuk/objects/form-group\") {\n .govuk-form-group {\n @include govuk-clearfix;\n @include govuk-responsive-margin(6, \"bottom\");\n\n .govuk-form-group:last-of-type {\n margin-bottom: 0; // Remove margin from last item in nested groups\n }\n }\n\n .govuk-form-group--error {\n padding-left: govuk-spacing(3);\n border-left: $govuk-border-width-form-group-error solid $govuk-error-colour;\n\n .govuk-form-group {\n // Reset error styles in nested form groups that might have error class\n padding: 0;\n border: 0;\n }\n }\n}\n", "////\n/// @group helpers/layout\n////\n\n/// Clear floated content within a container using a pseudo element\n///\n/// @access public\n\n@mixin govuk-clearfix {\n &:after {\n content: \"\";\n display: block;\n clear: both;\n }\n}\n", "@import \"../base\";\n\n@include govuk-exports(\"govuk/objects/grid\") {\n .govuk-grid-row {\n @include govuk-clearfix;\n margin-right: - ($govuk-gutter-half);\n margin-left: - ($govuk-gutter-half);\n }\n\n @each $width in map-keys($govuk-grid-widths) {\n .govuk-grid-column-#{$width} {\n @include govuk-grid-column($width);\n }\n }\n\n // These *must* be defined in a separate loop as they have the same\n // specificity as the non-breakpoint specific classes, so need to appear after\n // them in the outputted CSS\n @each $width in map-keys($govuk-grid-widths) {\n .govuk-grid-column-#{$width}-from-desktop {\n @include govuk-grid-column($width, $at: desktop);\n }\n }\n}\n", "////\n/// @group helpers/layout\n////\n\n/// Grid width percentage\n///\n/// @param {String} $key - Name of grid width (e.g. two-thirds)\n/// @return {Number} Percentage width\n/// @throw if `$key` is not a valid grid width\n/// @access public\n\n@function govuk-grid-width($key) {\n @if map-has-key($govuk-grid-widths, $key) {\n @return map-get($govuk-grid-widths, $key);\n }\n\n @error \"Unknown grid width `#{$key}`\";\n}\n\n/// Generate grid column styles\n///\n/// Creates a grid column with standard gutter between the columns.\n///\n/// Grid widths are defined in the `$govuk-grid-widths` map.\n///\n/// By default the column width changes from 100% to specified width at the\n/// 'tablet' breakpoint, but other breakpoints can be specified using the `$at`\n/// parameter.\n///\n/// @param {String} $width [full] name of a grid width from $govuk-grid-widths\n/// @param {String} $float [left] left | right\n/// @param {String} $at [tablet] - mobile | tablet | desktop | any custom breakpoint\n///\n/// @example scss - Default\n/// .govuk-grid-column-two-thirds {\n/// @include govuk-grid-column(two-thirds)\n/// }\n///\n/// @example scss - Customising the breakpoint where width percentage is applied\n/// .govuk-grid-column-one-half-at-desktop {\n/// @include govuk-grid-column(one-half, $at: desktop);\n/// }\n///\n/// @example scss - Customising the float direction\n/// .govuk-grid-column-one-half-right {\n/// @include govuk-grid-column(two-thirds, $float: right);\n/// }\n///\n/// @access public\n\n@mixin govuk-grid-column($width: full, $float: left, $at: tablet) {\n box-sizing: border-box;\n @if $at != desktop {\n width: 100%;\n }\n padding: 0 $govuk-gutter-half;\n @include govuk-media-query($from: $at) {\n width: govuk-grid-width($width);\n float: $float;\n }\n}\n", "@import \"../base\";\n\n////\n/// @group objects/layout\n////\n\n// Example usage with Breadcrumbs, phase banners, back links:\n//

\n// \n//
\n// \n//
\n//
\n//\n// Example usage without Breadcrumbs, phase banners, back links:\n//
\n//
\n// \n//
\n//
\n\n@include govuk-exports(\"govuk/objects/main-wrapper\") {\n .govuk-main-wrapper {\n // In IE11 the `main` element can be used, but is not recognized –\n // meaning it's not defined in IE's default style sheet,\n // so it uses CSS initial value, which is inline.\n display: block;\n padding-top: govuk-spacing(4);\n padding-bottom: govuk-spacing(4);\n\n @include govuk-media-query($from: tablet) {\n // This spacing is manually adjusted to replicate the margin of\n // govuk-heading-xl (50px) minus the spacing of back link and\n // breadcrumbs (10px)\n padding-top: govuk-spacing(7);\n padding-bottom: govuk-spacing(7);\n }\n }\n\n // Using the `.govuk-main-wrapper--auto-spacing` modifier should apply the\n // correct spacing depending on whether there are any elements\n // (such the back link, breadcrumbs or phase banner components) before the\n // `.govuk-main-wrapper` in the `govuk-width-container`.\n //\n // If you need to control the spacing manually, use the\n // `govuk-main-wrapper--l` modifier instead.\n .govuk-main-wrapper--auto-spacing:first-child,\n .govuk-main-wrapper--l {\n @include govuk-responsive-padding(8, \"top\");\n }\n}\n", "@import \"../base\";\n\n@include govuk-exports(\"govuk/objects/template\") {\n\n // Applied to the element\n .govuk-template {\n // Set the overall page background colour to the same colour as used by the\n // footer to give the illusion of a long footer.\n background-color: $govuk-canvas-background-colour;\n\n // Prevent automatic text sizing, as we already cater for small devices and\n // would like the browser to stay on 100% text zoom by default.\n -webkit-text-size-adjust: 100%;\n -moz-text-size-adjust: 100%;\n text-size-adjust: 100%;\n\n // Add scroll padding to the top of govuk-template but remove it if the\n // exit this page component is present.\n //\n // This is a solution to exit this page potentially failing WCAG SC 2.4.12:\n // Focus Not Obscured (https://www.w3.org/WAI/WCAG22/Understanding/focus-not-obscured-minimum.html)\n // due to it's sticky positioning.\n //\n // This will apply scroll-padding-top in any browsers that don't support :has\n // (https://caniuse.com/css-has). This is part of the reason we do this in\n // a \"wrong way round\" way as we hypothesise that the risks of having\n // scroll-padding unnecessarily is better than risking not having scroll-padding\n // and needing it to account for exit this page.\n @supports ((position: -webkit-sticky) or (position: sticky)) {\n scroll-padding-top: govuk-spacing(9);\n\n &:not(:has(.govuk-exit-this-page)) {\n scroll-padding-top: 0;\n }\n }\n\n // Force the scrollbar to always display in IE, to prevent horizontal page\n // jumps as content height changes (e.g. autocomplete results open).\n @include govuk-media-query($media-type: screen) {\n overflow-y: scroll;\n }\n }\n\n // Applied to the element\n .govuk-template__body {\n // The default margins set by user-agents are not required since we have our\n // own containers.\n margin: 0;\n // Set the overall body of the page back to the typical background colour.\n background-color: $govuk-body-background-colour;\n }\n}\n", "@import \"../base\";\n\n////\n/// @group objects/layout\n////\n\n/// Width container mixin\n///\n/// Used to create page width and custom width container classes.\n///\n/// @param {String} $width [$govuk-page-width] - Width in pixels\n///\n/// @example scss - Creating a 1200px wide container class\n/// .app-width-container--wide {\n/// @include govuk-width-container(1200px);\n/// }\n///\n/// @access public\n\n@mixin govuk-width-container($width: $govuk-page-width) {\n\n // By default, limit the width of the container to the page width\n max-width: $width;\n\n // On mobile, add half width gutters\n margin-right: $govuk-gutter-half;\n margin-left: $govuk-gutter-half;\n\n // Respect 'display cutout' safe area (avoids notches and rounded corners)\n @supports (margin: unquote(\"max(calc(0px))\")) {\n $gutter-safe-area-right: calc(#{$govuk-gutter-half} + env(safe-area-inset-right));\n $gutter-safe-area-left: calc(#{$govuk-gutter-half} + env(safe-area-inset-left));\n\n // Use max() to pick largest margin, default or with safe area\n // Escaped due to Sass max() vs. CSS native max()\n margin-right: unquote(\"max(#{$govuk-gutter-half}, #{$gutter-safe-area-right})\");\n margin-left: unquote(\"max(#{$govuk-gutter-half}, #{$gutter-safe-area-left})\");\n }\n\n // On tablet, add full width gutters\n @include govuk-media-query($from: tablet) {\n margin-right: $govuk-gutter;\n margin-left: $govuk-gutter;\n\n // Respect 'display cutout' safe area (avoids notches and rounded corners)\n @supports (margin: unquote(\"max(calc(0px))\")) {\n $gutter-safe-area-right: calc(#{$govuk-gutter-half} + env(safe-area-inset-right));\n $gutter-safe-area-left: calc(#{$govuk-gutter-half} + env(safe-area-inset-left));\n\n // Use max() to pick largest margin, default or with safe area\n // Escaped due to Sass max() vs. CSS native max()\n margin-right: unquote(\"max(#{$govuk-gutter}, #{$gutter-safe-area-right})\");\n margin-left: unquote(\"max(#{$govuk-gutter}, #{$gutter-safe-area-left})\");\n }\n }\n\n // As soon as the viewport is greater than the width of the page plus the\n // gutters, just centre the content instead of adding gutters.\n @include govuk-media-query($and: \"(min-width: #{($width + $govuk-gutter * 2)})\") {\n margin-right: auto;\n margin-left: auto;\n\n // Since a safe area may have previously been set above,\n // we need to duplicate this margin that centers the page.\n @supports (margin: unquote(\"max(calc(0px))\")) {\n margin-right: auto;\n margin-left: auto;\n }\n }\n\n @include _govuk-if-ie8 {\n width: $width;\n // Since media queries are not supported in IE8,\n // we need to duplicate this margin that centers the page.\n margin-right: auto;\n margin-left: auto;\n }\n}\n\n@include govuk-exports(\"govuk/objects/width-container\") {\n .govuk-width-container {\n @include govuk-width-container;\n }\n}\n", "////\n/// @group settings/measurements\n////\n\n// =========================================================\n// Page layout\n// =========================================================\n\n/// Width of main container\n///\n/// @type Number\n/// @access public\n\n$govuk-page-width: 960px !default;\n\n/// Map of grid column widths\n///\n/// @type Map\n/// @access public\n\n$govuk-grid-widths: (\n one-quarter: (100% / 4),\n one-third: (100% / 3),\n one-half: (100% / 2),\n two-thirds: (200% / 3),\n three-quarters: (300% / 4),\n full: 100%\n) !default;\n\n/// Width of gutter between grid columns\n///\n/// @type Number\n/// @access public\n\n$govuk-gutter: 30px !default;\n\n/// Width of half the gutter between grid columns\n///\n/// @type Number\n/// @access public\n\n$govuk-gutter-half: $govuk-gutter / 2;\n\n// =========================================================\n// Borders\n// =========================================================\n\n/// Standard border width\n///\n/// @type Number\n/// @access public\n\n$govuk-border-width: 5px !default;\n\n/// Wide border width\n///\n/// @type Number\n/// @access public\n\n$govuk-border-width-wide: 10px !default;\n\n/// Narrow border width\n///\n/// @type Number\n/// @access public\n\n$govuk-border-width-narrow: 4px !default;\n\n/// Form control border width\n///\n/// @type Number\n/// @access public\n\n$govuk-border-width-form-element: 2px !default;\n\n/// Form group border width when in error state\n///\n/// @type Number\n/// @access public\n\n$govuk-border-width-form-group-error: $govuk-border-width !default;\n\n/// Border width of focus outline\n///\n/// @type Number\n/// @access public\n\n$govuk-focus-width: 3px !default;\n\n/// Hover width for form controls with a hover state\n///\n/// @type Number\n/// @access public\n\n$govuk-hover-width: 10px !default;\n", "@include govuk-exports(\"govuk/component/accordion\") {\n $govuk-accordion-base-colour: govuk-colour(\"black\");\n $govuk-accordion-hover-colour: govuk-colour(\"light-grey\", $legacy: \"grey-3\");\n $govuk-accordion-icon-focus-colour: $govuk-focus-colour;\n $govuk-accordion-bottom-border-width: 1px;\n\n .govuk-accordion {\n @include govuk-responsive-margin(6, \"bottom\");\n }\n\n .govuk-accordion__section {\n padding-top: govuk-spacing(3);\n }\n\n .govuk-accordion__section-heading {\n // Override browser defaults to ensure consistent element height\n margin-top: 0;\n margin-bottom: 0;\n\n padding-top: govuk-spacing(3);\n padding-bottom: govuk-spacing(3);\n }\n\n .govuk-accordion__section-button {\n @include govuk-font($size: 24, $weight: bold);\n @include govuk-text-colour;\n\n display: block;\n margin-bottom: 0;\n padding-top: govuk-spacing(3);\n }\n\n // Remove the bottom margin from the last item inside the content\n .govuk-accordion__section-content > :last-child {\n margin-bottom: 0;\n }\n\n // JavaScript enabled\n .js-enabled {\n .govuk-accordion {\n // Border at the bottom of the whole accordion\n border-bottom: $govuk-accordion-bottom-border-width solid $govuk-border-colour;\n }\n\n .govuk-accordion__section {\n padding-top: 0;\n }\n\n // Hide the body of collapsed sections by default for browsers that lack\n // support for `content-visibility` paired with [hidden=until-found]\n .govuk-accordion__section-content {\n display: none;\n\n @include govuk-responsive-padding(3, \"top\");\n @include govuk-responsive-padding(8, \"bottom\");\n }\n\n // Hide the body of collapsed sections using `content-visibility` to enable\n // page search within [hidden=until-found] regions where browser supported\n .govuk-accordion__section-content[hidden] {\n @supports (content-visibility: hidden) {\n content-visibility: hidden;\n display: inherit;\n }\n\n // Hide the padding of collapsed sections\n padding-top: 0;\n padding-bottom: 0;\n }\n\n // Show the body of expanded sections\n .govuk-accordion__section--expanded .govuk-accordion__section-content {\n display: block;\n }\n\n .govuk-accordion__show-all {\n @include govuk-font($size: 19);\n position: relative;\n z-index: 1;\n\n margin-bottom: 9px;\n padding: govuk-spacing(1) 2px govuk-spacing(1) 0;\n\n border-width: 0;\n\n color: $govuk-link-colour;\n background: none;\n\n cursor: pointer;\n -webkit-appearance: none;\n\n @include govuk-media-query ($from: tablet) {\n margin-bottom: 14px;\n }\n\n // Remove default button focus outline in Firefox\n &::-moz-focus-inner {\n padding: 0;\n border: 0;\n }\n\n &:hover {\n color: $govuk-accordion-base-colour;\n background: $govuk-accordion-hover-colour;\n // The GOV.UK Design System focus state adds a box-shadow to the top and bottom of the\n // button. We add a grey box-shadow on hover too, to make the height of the hover state\n // match the height of the focus state.\n box-shadow: 0 -2px $govuk-accordion-hover-colour, 0 4px $govuk-accordion-hover-colour;\n\n .govuk-accordion__section-toggle-text {\n color: $govuk-accordion-base-colour;\n }\n\n .govuk-accordion-nav__chevron {\n color: $govuk-accordion-base-colour;\n background: $govuk-accordion-base-colour;\n }\n\n .govuk-accordion-nav__chevron:after {\n color: $govuk-accordion-hover-colour;\n }\n }\n\n &:focus {\n @include govuk-focused-text;\n\n .govuk-accordion-nav__chevron {\n background: $govuk-accordion-base-colour;\n }\n\n .govuk-accordion-nav__chevron:after {\n color: $govuk-accordion-icon-focus-colour;\n }\n }\n }\n\n .govuk-accordion__section-heading {\n padding: 0;\n }\n\n // Create Chevron icon aligned with text\n .govuk-accordion-nav__chevron {\n box-sizing: border-box;\n display: inline-block;\n\n position: relative;\n\n // Set size using rems to make the icon scale with text if user resizes text in their browser\n width: govuk-px-to-rem(20px);\n height: govuk-px-to-rem(20px);\n\n border: govuk-px-to-rem(1px) solid;\n border-radius: 50%;\n\n vertical-align: middle;\n\n // IE8 fallback of icon\n @include _govuk-if-ie8 {\n display: inline-block;\n max-height: 20px;\n line-height: 1;\n }\n\n // Create inner chevron arrow\n &:after {\n content: \"\";\n box-sizing: border-box;\n display: block;\n\n position: absolute;\n bottom: govuk-px-to-rem(5px);\n left: govuk-px-to-rem(6px);\n\n width: govuk-px-to-rem(6px);\n height: govuk-px-to-rem(6px);\n\n -webkit-transform: rotate(-45deg);\n\n -ms-transform: rotate(-45deg);\n\n transform: rotate(-45deg);\n\n border-top: govuk-px-to-rem(2px) solid;\n border-right: govuk-px-to-rem(2px) solid;\n\n // IE8 fallback of icon with HTML symbol\n @include _govuk-if-ie8 {\n content: \"\\25B2\"; // \"▲\"\n position: relative;\n border: 0;\n }\n }\n }\n\n // Rotate icon to create \"Down\" version\n .govuk-accordion-nav__chevron--down {\n -webkit-transform: rotate(180deg);\n -ms-transform: rotate(180deg);\n transform: rotate(180deg);\n\n // IE8 fallback of arrow icon\n @include _govuk-if-ie8 {\n &:after {\n content: \"\\25BC\"; // \"▼\"\n -webkit-transform: none;\n -ms-transform: none;\n transform: none;\n }\n }\n }\n\n .govuk-accordion__section-button {\n width: 100%;\n\n padding: govuk-spacing(2) 0 0 0;\n\n border: 0;\n\n border-top: $govuk-accordion-bottom-border-width solid $govuk-border-colour;\n\n // Visually separate the section from the one underneath when user changes colours in their\n // browser. See https://github.com/alphagov/govuk-frontend/issues/2321#issuecomment-924201488\n border-bottom: govuk-spacing(2) solid transparent;\n\n color: $govuk-text-colour;\n background: none;\n\n text-align: left;\n // Section headers have a pointer cursor as an additional affordance\n cursor: pointer;\n -webkit-appearance: none;\n\n @include govuk-media-query ($from: tablet) {\n padding-bottom: govuk-spacing(2);\n }\n\n &:active {\n color: $govuk-link-active-colour;\n background: none;\n }\n\n &:hover {\n color: $govuk-accordion-base-colour;\n background: $govuk-accordion-hover-colour;\n\n .govuk-accordion__section-toggle-text {\n color: $govuk-accordion-base-colour;\n }\n\n .govuk-accordion-nav__chevron {\n color: $govuk-accordion-base-colour;\n background: $govuk-accordion-base-colour;\n }\n\n .govuk-accordion-nav__chevron:after {\n color: $govuk-accordion-hover-colour;\n }\n }\n\n &:focus {\n // Remove default focus border around button as\n // styling is being applied to inner text elements that receive focus\n outline: 0;\n\n .govuk-accordion__section-heading-text-focus,\n .govuk-accordion__section-summary-focus,\n .govuk-accordion__section-toggle-focus {\n @include govuk-focused-text;\n }\n\n .govuk-accordion-nav__chevron {\n color: $govuk-accordion-base-colour;\n background: $govuk-accordion-base-colour;\n }\n\n .govuk-accordion-nav__chevron:after {\n color: $govuk-accordion-icon-focus-colour;\n }\n }\n\n // Remove default button focus outline in Firefox\n &::-moz-focus-inner {\n padding: 0;\n border: 0;\n }\n }\n\n // Remove the transparent border when the section is expanded to make it clear that the heading\n // relates to the content below. Adjust padding to maintain the height of the element.\n // See https://github.com/alphagov/govuk-frontend/pull/2257#issuecomment-951920798\n .govuk-accordion__section--expanded .govuk-accordion__section-button {\n padding-bottom: govuk-spacing(3);\n border-bottom: 0;\n\n @include govuk-media-query ($from: tablet) {\n padding-bottom: govuk-spacing(4);\n }\n }\n\n // As Chevron icon is vertically aligned it overlaps with the focus state bottom border\n // Styling adds some spacing\n .govuk-accordion__section-button:focus .govuk-accordion__section-toggle-focus {\n padding-bottom: 3px;\n\n @include govuk-media-query ($from: desktop) {\n padding-bottom: 2px;\n }\n }\n\n .govuk-accordion__section-toggle,\n .govuk-accordion__section-heading-text,\n .govuk-accordion__section-summary {\n display: block;\n margin-bottom: 13px;\n\n .govuk-accordion__section-heading-text-focus,\n .govuk-accordion__section-summary-focus,\n .govuk-accordion__section-toggle-focus {\n display: inline;\n }\n }\n\n // Add toggle link with Chevron icon on left.\n .govuk-accordion__section-toggle {\n @include govuk-typography-responsive($size: 19);\n @include govuk-typography-weight-regular;\n color: $govuk-link-colour;\n }\n\n // Add space between the icon and text.\n // Avoid applying spacing directly to the icon as the use of `transform` will change the\n // placement of any margins.\n .govuk-accordion__show-all-text,\n .govuk-accordion__section-toggle-text {\n margin-left: govuk-spacing(1);\n vertical-align: middle;\n }\n\n // Background colour adjustment when user changes colours in Firefox\n //\n // When user changes colours in Firefox, text colour inside